.fishing-task{--ft-ink:#183d53;--ft-gold:#ffe58c;color:var(--ft-ink);background:#e9f5fa;border:2px solid #90b8cb;border-radius:20px;padding:clamp(12px,3vw,22px);max-width:760px;margin:auto;isolation:isolate}.fishing-task button{font:inherit;min-height:48px;border-radius:12px;border:2px solid #28566a;background:#fff;color:#173c52;padding:10px 16px;cursor:pointer}.fishing-task button:focus-visible{outline:4px solid #cc7b00;outline-offset:3px}.fishing-task button:disabled{opacity:.55;cursor:wait}.fishing-task [hidden]{display:none!important}.ft-progress{font-size:1.15em;font-weight:800;margin:0 0 8px}.ft-instructions,.ft-help{font-size:.95em;line-height:1.5}.ft-scene{background:linear-gradient(#8ebedb,#e7f5ff);border-radius:14px;overflow:hidden}.ft-scene svg{display:block;width:100%;height:auto;max-height:230px}.ft-snow{fill:#fff}.ft-hole{fill:#194f72;stroke:#9bddeb;stroke-width:10}.ft-rod{fill:none;stroke:#785234;stroke-width:9;stroke-linecap:round}.ft-line{fill:none;stroke:#effdff;stroke-width:2}.ft-fish{fill:#f0c673}.ft-fish circle{fill:#1c3347}.ft-ice{fill:none;stroke:#b4dae4;stroke-width:5}.ft-scene.ft-in-window .ft-fish{fill:#fff1a8}.ft-meter{position:relative;min-height:68px;margin:15px 10px 4px;background:#173c52;border:3px solid #173c52;border-radius:12px;overflow:visible}.ft-target{position:absolute;top:0;bottom:0;display:flex;align-items:end;justify-content:center;background:#d8f4e5;border:4px solid #fff;box-shadow:0 0 0 2px #316c57 inset;color:#13392c;font-size:clamp(9px,2.6vw,13px);font-weight:900;white-space:nowrap;padding-bottom:3px}.ft-marker{position:absolute;top:0;transform:translateX(-50%);color:#ffd15e;font-size:35px;line-height:1.2;text-shadow:0 1px 3px #000;z-index:2}.ft-in-window .ft-target{background:#fff0a6;box-shadow:0 0 0 3px #a65c00 inset}.ft-idle .ft-marker{opacity:.25}.ft-cue{min-height:1.6em;text-align:center;font-weight:900;margin:9px 0}.ft-controls{display:flex;flex-wrap:wrap;gap:10px}.ft-controls [data-fishing-action=hit]{background:#ffe58c;border-color:#8a5913;font-weight:800;flex:1 1 100%;font-size:1.15em}.ft-status{min-height:3em;font-weight:600;line-height:1.5}.ft-help{margin-bottom:0;color:#38576a}.fishing-task [data-fishing-action=complete]{width:100%;background:#d8f4e5}.fishing-task [aria-busy=true]{cursor:progress}@media(max-width:420px){.ft-controls button{flex:1 1 45%;font-size:.93em}.ft-meter{min-height:65px}.ft-help{font-size:.85em}}@media(prefers-reduced-motion:reduce){.fishing-task *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.fishing-task.minigame-enhanced{box-sizing:border-box;width:100%;padding:14px 10px;border:1px solid #eff6ec55;background:linear-gradient(#e9f3eeeF,#d2e6e9f5);box-shadow:inset 0 1px 20px #ffffff55}
.minigame-enhanced .ft-scene{position:relative;display:block;width:100%;padding:0;border:1px solid #ffffff88;background:linear-gradient(#5a91ae44,#b4d5e455),url(assets/minigame-lake-v84.webp) center 40%/cover;touch-action:manipulation;cursor:pointer;min-height:190px}
.minigame-enhanced .ft-scene:disabled{opacity:1;cursor:default}
.minigame-enhanced .ft-scene svg{min-height:170px;max-height:230px}
.minigame-enhanced .ft-snow{fill:#eff8f0e8}.minigame-enhanced .ft-hole{fill:#16465c;stroke:#d3eced;stroke-width:8}
.ft-bobber{transform-box:fill-box;transform-origin:center;will-change:transform}.ft-bobber path{stroke:#f9f0c5;stroke-width:3}.ft-bobber ellipse{fill:#dca776;stroke:#fff2cb;stroke-width:3}
.ft-ripple{fill:none;stroke:#c1ecec77;stroke-width:2}
.minigame-running:not(.minigame-calm) .ft-fish{animation:ft-fish-drift 5s ease-in-out infinite alternate;transform-origin:375px 180px}
.minigame-running:not(.minigame-calm) .ft-ripple{animation:ft-water-ring 2.8s ease-in-out infinite}
.ft-scene-prompt{display:block;position:relative;margin:0 8px 8px;padding:9px;border:1px solid #ffffff88;border-radius:14px;background:#133c4be6;color:#f5f5e4;font:14px/1.4 system-ui;min-height:42px}
.ft-in-window .ft-scene-prompt{background:#fff1c6;color:#294c48;border:2px solid #315c52}.ft-in-window .ft-bobber ellipse{fill:#fff5bd}
.ft-player{position:absolute;left:3%;bottom:25%;width:clamp(44px,18%,90px);height:clamp(65px,30%,120px);object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px #193b4a44)}
.fishing-task .minigame-tools{padding:7px 10px;border-block:1px solid #83a9ad77;font:14px/1.5 system-ui}
.fishing-task .minigame-tools summary{display:flex;align-items:center;min-height:48px;cursor:pointer;font-weight:600}
.fishing-task .minigame-tools button{margin:6px 4px 6px 0;max-width:100%;white-space:normal}
.minigame-enhanced .ft-controls{justify-content:center}.minigame-enhanced .ft-controls button{flex:1 1 48%;min-width:48px}
.minigame-calm .ft-bobber{transform:none!important;will-change:auto}.minigame-calm .ft-marker{visibility:hidden}.minigame-calm .ft-cue{padding:8px;border:2px solid #476e71;border-radius:12px}
@keyframes ft-fish-drift{from{transform:translate(-18px,2px)}to{transform:translate(20px,-2px)}}
@keyframes ft-water-ring{0%,100%{opacity:.3;transform:translateY(1px)}50%{opacity:.8;transform:translateY(-1px)}}
html.comfort-reduce .fishing-task *{animation:none!important;transition:none!important}.fishing-task.minigame-calm *{animation:none!important;transition:none!important}
