:root{--ink:#071d2b;--paper:#eaf3ee;--cream:#f6f1e6;--aqua:#75dfd4;--coral:#ff8566;--gold:#f5c85b;--line:rgba(7,29,43,.18);--muted:#58707a;--shadow:0 22px 60px rgba(7,29,43,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,system-ui,sans-serif}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.topbar{height:72px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:800;letter-spacing:.1em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--aqua);font-size:24px;transform:rotate(30deg)}.save-state{font:500 11px DM Mono,monospace;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;background:#35b77b;border-radius:50%;box-shadow:0 0 0 4px rgba(53,183,123,.12)}main{overflow:hidden}.game-shell{min-height:calc(100vh - 72px);padding:clamp(28px,4vw,58px) clamp(18px,5vw,72px) 64px;background:linear-gradient(180deg,#eaf3ee 0%,#dbece8 100%)}.game-heading{max-width:1400px;margin:0 auto 28px;display:flex;align-items:end;justify-content:space-between;gap:28px}.eyebrow{margin:0 0 10px;font:500 11px DM Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:#3c6e71}.game-heading h1{font-size:clamp(33px,5vw,72px);line-height:.97;letter-spacing:-.06em;max-width:800px;margin:0}.sound-toggle{border:1px solid var(--line);background:transparent;border-radius:999px;padding:11px 16px;font:500 10px DM Mono,monospace;letter-spacing:.08em;cursor:pointer}.stats{max-width:1400px;margin:0 auto 14px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:14px 14px 0 0;background:rgba(255,255,255,.38);overflow:hidden}.stat{padding:13px 18px;display:flex;align-items:center;justify-content:space-between;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat span{font:500 10px DM Mono,monospace;color:var(--muted);letter-spacing:.1em}.stat strong{font:700 18px DM Mono,monospace}.stat b{font-weight:700}.play-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px}.tank-card{position:relative;min-height:560px;background:#092d42;border:1px solid rgba(255,255,255,.3);border-radius:0 0 18px 18px;overflow:hidden;box-shadow:var(--shadow)}.tank-topline{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:16px 20px;color:rgba(255,255,255,.72);font:500 10px DM Mono,monospace;letter-spacing:.12em}.tank-topline b{color:white}#tank{display:block;width:100%;height:100%;min-height:560px}.water-warning{position:absolute;z-index:5;left:50%;bottom:18px;transform:translateX(-50%);background:var(--coral);color:var(--ink);padding:9px 13px;border-radius:999px;font-size:12px;font-weight:800}.toast{position:absolute;z-index:6;left:50%;top:18%;transform:translate(-50%,-8px);background:var(--cream);padding:11px 16px;border-radius:10px;font:600 12px DM Mono,monospace;opacity:0;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.control-panel{background:var(--cream);border:1px solid var(--line);border-radius:0 0 18px 18px;padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.task-card{background:var(--ink);color:white;border-radius:12px;padding:18px}.task-label,.panel-label{margin:0 0 13px;font:500 9px DM Mono,monospace;letter-spacing:.14em;color:var(--aqua)}.task-card h2{font-size:18px;margin:0 0 5px}.task-card p{font-size:12px;line-height:1.5;color:#abc3c8;margin:0}.progress-track{height:5px;background:rgba(255,255,255,.12);margin:16px 0 8px;border-radius:5px;overflow:hidden}.progress-track span{display:block;height:100%;width:50%;background:var(--aqua);transition:.3s}.task-foot{display:flex;justify-content:space-between;font:500 9px DM Mono,monospace;color:#abc3c8}.task-foot strong{color:var(--gold)}.actions{display:grid;gap:8px}.action{border:1px solid var(--line);border-radius:11px;background:#fffaf0;padding:11px 12px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;transition:.18s}.action:hover:not(:disabled){transform:translateY(-2px);border-color:#1e7f83}.action:active:not(:disabled){transform:translateY(0)}.action:disabled,.upgrade:disabled{opacity:.45;cursor:not-allowed}.action.primary{background:var(--aqua);border-color:transparent}.action-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid currentColor;border-radius:50%;font-size:17px}.action strong,.action small{display:block}.action strong{font-size:13px}.action small{font:500 9px DM Mono,monospace;margin-top:3px;color:var(--muted)}.upgrade-list{border-top:1px solid var(--line);padding-top:13px}.panel-label{color:var(--muted);margin-bottom:6px}.upgrade{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 4px;display:flex;justify-content:space-between;text-align:left;cursor:pointer}.upgrade span b,.upgrade span small{display:block}.upgrade span b{font-size:12px}.upgrade span small{font:500 9px DM Mono,monospace;color:var(--muted);margin-top:3px}.upgrade>strong{min-width:37px;height:27px;display:grid;place-items:center;border-radius:14px;background:var(--gold);font:700 10px DM Mono,monospace}.reset{margin-top:auto;border:0;background:transparent;color:#7c8d91;font:500 9px DM Mono,monospace;text-decoration:underline;cursor:pointer}.field-notes,.faq{padding:clamp(72px,10vw,150px) clamp(20px,8vw,120px);max-width:1500px;margin:auto}.field-notes h2,.faq h2{font-size:clamp(38px,6vw,78px);letter-spacing:-.055em;line-height:1;max-width:780px;margin:0 0 60px}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.notes-grid article{background:var(--paper);padding:32px}.notes-grid span{font:500 10px DM Mono,monospace;color:var(--coral)}.notes-grid h3{font-size:22px;margin:42px 0 12px}.notes-grid p{line-height:1.7;color:var(--muted);margin:0}.faq{padding-top:40px}.faq h2{margin-bottom:36px}.faq details{border-top:1px solid var(--line);padding:22px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{font-size:18px;font-weight:700;cursor:pointer}.faq details p{color:var(--muted);line-height:1.7;max-width:720px}footer{padding:28px clamp(20px,5vw,72px);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font:500 10px DM Mono,monospace;color:var(--muted)}
@media(max-width:900px){.play-grid{grid-template-columns:1fr}.tank-card{border-radius:0;min-height:500px}.control-panel{border-radius:0 0 18px 18px}.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.notes-grid{grid-template-columns:1fr}.game-heading{align-items:start}.sound-toggle{margin-top:6px;white-space:nowrap}}
@media(max-width:560px){.topbar{height:60px}.save-state span:last-child{display:none}.game-shell{padding-left:10px;padding-right:10px}.game-heading{display:block;padding:0 8px}.sound-toggle{margin-top:18px}.stat{padding:11px}.stat strong{font-size:14px}.tank-card,#tank{min-height:430px}.field-notes,.faq{padding-left:24px;padding-right:24px}footer{flex-direction:column}.notes-grid article{padding:26px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.coach{background:#fff;border:1px solid var(--line);border-left:4px solid var(--coral);border-radius:10px;padding:10px 12px}
.task-path-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.task-path-head .task-label{margin:0}
.task-path-head>span{font:500 9px "DM Mono",monospace;color:#abc3c8}
.task-card .task-next{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12);font-size:10px;color:var(--aqua)}
.task-card.is-complete{background:#174f4e}
.coach span{font:500 9px "DM Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#c45b42}
.coach p{margin:4px 0 0;font-size:13px;line-height:1.45}
.goal-line{margin:0;font:500 11px "DM Mono",monospace;color:var(--muted);line-height:1.45}
.coach[hidden],.feedback-rail[hidden],.fish-card[hidden],.sheet-backdrop[hidden],.breed-wait[hidden],.action[hidden],.tank-hint[hidden],.event-banner[hidden],.tank-tools[hidden],.decor-editor[hidden],.decor-picks button[hidden]{display:none!important}
.tank-hint{position:absolute;z-index:5;left:50%;bottom:18px;transform:translateX(-50%);background:var(--cream);color:var(--ink);padding:9px 13px;border-radius:999px;font:700 12px "DM Mono",monospace;white-space:nowrap}
.event-banner{position:absolute;z-index:7;left:50%;top:48px;transform:translateX(-50%);width:min(430px,calc(100% - 28px));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;background:rgba(246,241,230,.96);color:var(--ink);border:2px solid var(--gold);border-radius:14px;padding:11px 13px;box-shadow:var(--shadow);pointer-events:none}
.event-banner span,.event-banner small{font:700 10px "DM Mono",monospace}.event-banner span{color:#b24f36}.event-banner strong{font-size:13px}.event-banner small{color:var(--muted)}
.tank-card.has-event #tank{cursor:crosshair}
.tank-tools{position:absolute;z-index:6;right:14px;top:43px;display:flex;gap:7px}.tank-tools button,.decor-picks button{border:1px solid rgba(255,255,255,.42);background:rgba(7,29,43,.72);color:#fff;border-radius:999px;padding:8px 11px;font:700 10px "DM Mono",monospace;cursor:pointer;backdrop-filter:blur(8px)}.tank-tools button:hover,.tank-tools button.is-active,.decor-picks button.is-active{background:var(--gold);color:var(--ink);border-color:transparent}.tank-tools button:disabled{opacity:.45;cursor:not-allowed}.decor-editor{position:absolute;z-index:8;left:50%;top:48px;transform:translateX(-50%);width:min(510px,calc(100% - 28px));display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(246,241,230,.96);border:2px solid var(--gold);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow)}.decor-editor>span{font-size:12px;font-weight:700;line-height:1.35}.decor-picks{display:flex;gap:6px;flex:none}.decor-picks button{min-width:34px;padding:7px 10px;background:var(--ink)}.decor-picks #arrangeDone{background:var(--aqua);color:var(--ink);border-color:transparent}.tank-card.is-arranging #tank{cursor:grab;touch-action:none}.tank-card.is-arranging #tank:active{cursor:grabbing}
.feedback-rail{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-left:5px solid #1e7f83;border-radius:12px;padding:11px 12px 12px;box-shadow:0 8px 20px rgba(7,29,43,.07)}
.feedback-rail:after{content:"";position:absolute;right:-18px;top:-20px;width:64px;height:64px;border-radius:50%;background:rgba(117,223,212,.17)}
.feedback-rail span,.feedback-rail strong{display:block;position:relative;z-index:1}.feedback-rail span{font:700 9px "DM Mono",monospace;letter-spacing:.12em;color:#1e7f83;margin-bottom:4px}.feedback-rail strong{font-size:13px;line-height:1.42}.feedback-rail.is-event{border-left-color:var(--coral);background:#fff8ee}.feedback-rail.is-event span{color:#c45b42}
.adopt-row{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;align-items:stretch}
.cycle,.sheet-close,.icon-close{border:1px solid var(--line);background:#fffaf0;border-radius:11px;cursor:pointer}
.cycle{font-size:22px;line-height:1}
.cycle:hover,.sheet-close:hover,.icon-close:hover{border-color:#1e7f83}
.is-next{box-shadow:0 0 0 3px var(--coral)}
.fish-card{position:absolute;z-index:4;top:48px;left:14px;width:min(320px,calc(100% - 28px));display:flex;align-items:center;gap:10px;background:var(--cream);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow)}
.fish-card-copy{min-width:0}
.fish-card-copy strong,.fish-card-copy span{display:block}
.fish-card-copy strong{font-size:14px}
.fish-card-stats{display:flex;flex-direction:column;gap:2px;font:500 9px "DM Mono",monospace;color:var(--muted)}
#careBtn,#sellBtn{border:0;border-radius:999px;padding:8px 10px;font:700 10px "DM Mono",monospace;cursor:pointer;white-space:nowrap}
#careBtn{margin-left:auto;background:var(--aqua)}#sellBtn{background:var(--gold)}
#careBtn:disabled,#sellBtn:disabled{opacity:.45;cursor:not-allowed}
.icon-close,.sheet-close{width:36px;height:36px;display:grid;place-items:center;font-size:20px;line-height:1;flex:none}
.rarity{font:500 9px "DM Mono",monospace;letter-spacing:.12em;text-transform:uppercase}
.rarity-common{color:#3c6e71}
.rarity-rare{color:#6d5bd0}
.rarity-epic{color:#c46b2d}
.sheet-backdrop{position:fixed;inset:0;z-index:20;background:rgba(7,29,43,.46);display:grid;place-items:center;padding:18px}
.sheet{width:min(520px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;background:var(--cream);color:var(--ink);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.sheet-wide{width:min(880px,100%)}
.sheet-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}
.sheet-head h2{margin:0;font-size:28px;letter-spacing:-.04em}
.sheet-copy{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:1.5}
.parent-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.parent-slot{border:1px dashed var(--line);border-radius:12px;background:#fffaf0;padding:12px;text-align:left;cursor:pointer;font:600 13px Manrope,sans-serif}
.parent-slot.is-filled{border-style:solid;border-color:#1e7f83}
.school-list{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.school-fish{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.school-pick,.school-sell{border:1px solid var(--line);background:#fffaf0;border-radius:11px;cursor:pointer;text-align:left}
.school-pick{padding:10px 12px;font:600 12px Manrope,sans-serif}
.school-pick.is-selected{border-color:#1e7f83;box-shadow:inset 0 0 0 1px #1e7f83}
.school-pick:disabled{opacity:.45;cursor:not-allowed}
.school-sell{padding:0 10px;font:700 10px "DM Mono",monospace;background:var(--gold);border-color:transparent}
.school-sell:disabled{opacity:.45;cursor:not-allowed}
.sheet .action{width:100%}
.breed-wait p{margin:0 0 8px;font:500 12px "DM Mono",monospace}
.progress-track.on-cream{background:rgba(7,29,43,.1)}
.codex-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.codex-card{border:1px solid var(--line);border-radius:12px;background:#fffaf0;padding:8px 10px 12px;min-height:148px}
.codex-card.is-locked{background:#e1ebe7}
.codex-card h3{margin:4px 0;font-size:15px}
.codex-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.codex-fish{width:100%;height:72px;display:block}
@media(max-width:700px){
  .codex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fish-card{flex-wrap:wrap}
  #sellBtn{margin-left:0}
  .sheet-head h2{font-size:24px}
}

body{font-family:Manrope,"PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif}
.top-tools{display:flex;align-items:center;gap:14px}
.locale-switch{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.locale-switch button{border:0;background:transparent;padding:7px 11px;font:700 12px Manrope,"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;letter-spacing:0;cursor:pointer;color:var(--muted)}
.locale-switch button.is-active{background:var(--ink);color:var(--cream)}
.sound-toggle.is-off{background:rgba(7,29,43,.08);color:var(--muted);text-decoration:line-through}
.photo-card{background:#fffaf0;border:1px solid var(--line);border-radius:12px;padding:14px 14px 12px}
.photo-card h2{font-size:16px;margin:0 0 4px}
.photo-card p{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.photo-card .task-label{color:#c45b42}
.photo-card .task-foot{color:var(--muted);margin-top:10px}
.photo-card .task-foot strong{color:#9a6230}
.photo-card .action{width:100%;margin-top:10px}
.photo-card[hidden]{display:none!important}
.tide-reward{background:#fff3c8;border-color:#d5a934}.tide-reward .action-icon{background:var(--gold)}
.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.reward-choice{min-height:180px;border:1px solid var(--line);border-radius:14px;background:#fffaf0;padding:14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:8px;transition:.18s}.reward-choice:hover{transform:translateY(-2px);border-color:#1e7f83}.reward-choice>span{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--aqua);font-size:22px}.reward-choice strong{font-size:14px}.reward-choice small{color:var(--muted);line-height:1.45}.reward-choice b{margin-top:auto;font:700 10px "DM Mono",monospace;color:#9a6230}
.snapshot-sheet{width:min(760px,100%)}.snapshot-preview{display:block;width:100%;max-height:58vh;object-fit:contain;background:#092d42;border-radius:12px;border:1px solid var(--line)}.snapshot-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.snapshot-actions .action{justify-content:center;text-align:center}
html[lang="zh-Hans"] .stat span,
html[lang="zh-Hans"] .stat strong,
html[lang="zh-Hans"] .goal-line,
html[lang="zh-Hans"] .feedback-rail span,
html[lang="zh-Hans"] .event-banner span,
html[lang="zh-Hans"] .event-banner small,
html[lang="zh-Hans"] .tank-topline,
html[lang="zh-Hans"] .tank-hint,
html[lang="zh-Hans"] .toast,
html[lang="zh-Hans"] .save-state,
html[lang="zh-Hans"] .sound-toggle,
html[lang="zh-Hans"] .eyebrow,
html[lang="zh-Hans"] .task-label,
html[lang="zh-Hans"] .task-path-head>span,
html[lang="zh-Hans"] .task-next,
html[lang="zh-Hans"] .panel-label,
html[lang="zh-Hans"] .action small,
html[lang="zh-Hans"] .upgrade span small,
html[lang="zh-Hans"] .task-foot,
html[lang="zh-Hans"] .fish-card-stats,
html[lang="zh-Hans"] .rarity,
html[lang="zh-Hans"] #sellBtn,
html[lang="zh-Hans"] #careBtn,
html[lang="zh-Hans"] .school-sell,
html[lang="zh-Hans"] .breed-wait p,
html[lang="zh-Hans"] .coach span,
html[lang="zh-Hans"] footer{
  font-family:Manrope,"PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
  letter-spacing:0
}
html[lang="zh-Hans"] .game-heading h1,
html[lang="zh-Hans"] .field-notes h2,
html[lang="zh-Hans"] .faq h2,
html[lang="zh-Hans"] .sheet-head h2{letter-spacing:0}
html[lang="zh-Hans"] .eyebrow,
html[lang="zh-Hans"] .coach span,
html[lang="zh-Hans"] .rarity{text-transform:none}
html[lang="zh-Hans"] .tank-hint{white-space:normal;text-align:center;max-width:calc(100% - 28px)}
@media(max-width:560px){
  .topbar{height:auto;min-height:60px;padding-top:8px;padding-bottom:8px}
  .top-tools{gap:8px}
  .locale-switch button{padding:7px 9px}
  .reward-grid{grid-template-columns:1fr}.reward-choice{min-height:0}
  .tank-tools{top:40px;right:8px}.tank-tools button{padding:7px 9px}.decor-editor{align-items:flex-start;flex-direction:column}.decor-picks{width:100%}.decor-picks #arrangeDone{margin-left:auto}.snapshot-actions{grid-template-columns:1fr}
}
