:root{font-family:ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#173f43;background:#eaf0e7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f6ae56;outline-offset:3px}a{color:inherit;text-decoration:none}.top{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,64px);gap:16px;background:#f8faf3}.back{font-size:13px;font-weight:650}.brand{font-weight:900;font-size:21px;letter-spacing:-.06em}.brand span{color:#a2b8a1;font-weight:300;margin:0 8px}.brand b{font-size:14px;letter-spacing:.08em}.topright{display:flex;gap:18px;align-items:center}.link{border:0;background:none;color:#345e5b;font-weight:700;font-size:13px}.circle{width:34px;height:34px;border:1px solid #aac1b2;border-radius:50%;background:transparent;color:#23524e;font-weight:700}.layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:22px;padding:22px clamp(18px,3vw,48px)}.game{min-width:0;background:#f7f9f2;border-radius:18px;overflow:hidden;box-shadow:0 18px 50px #294f3f14}.scene{height:clamp(380px,59vw,650px);max-height:calc(100vh - 260px);min-height:400px;position:relative;overflow:hidden;background:#7ca19b url('/fishing/lake-dawn.webp') center center/cover}.scene:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#173d3b69,transparent 25%,transparent 72%,#123e3b66)}.scene-top{position:absolute;left:25px;right:25px;top:22px;display:flex;justify-content:space-between;align-items:start;color:white;z-index:3}.location{display:flex;align-items:center;gap:11px;text-shadow:0 1px 7px #0008}.sun{font-size:24px;color:#fce4aa}.location b,.location small{display:block}.location b{font-size:15px}.location small{font-size:12px;margin-top:3px}.phase{background:#143b3acc;border:1px solid #ffffff45;padding:9px 14px;border-radius:30px;font-size:12px;font-weight:700}.rod{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.rod path:first-child{fill:none;stroke:#283a30;stroke-width:7;stroke-linecap:round;filter:drop-shadow(1px 2px 2px #0006)}.rod path:last-child{fill:none;stroke:#f5f7e6;stroke-width:1.2;opacity:.95}.waterline{position:absolute;left:50%;top:59%;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s}.scene.active .waterline{opacity:1}.float{width:8px;height:31px;border-radius:50% 50% 35% 35%;background:linear-gradient(#ed5943 0 51%,#faf6d4 51% 80%,#2a514c 80%);position:relative;box-shadow:0 2px 5px #0005;animation:bob 2s infinite}.ripple{position:absolute;left:50%;top:23px;width:56px;height:15px;transform:translate(-50%,-50%);border:1px solid #ffffffaa;border-radius:50%;box-shadow:0 0 0 7px #ffffff25}.scene.bite .float{animation:bite .25s infinite}.scene-message{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#fff;background:#163a36ba;border:1px solid #ffffff45;border-radius:30px;padding:9px 18px;font-size:13px}.fight{position:absolute;z-index:4;bottom:24px;left:22px;width:min(310px,65%);padding:15px 17px;border-radius:14px;background:#183e3ce8;color:white;box-shadow:0 8px 25px #0002}.fight-head{display:flex;justify-content:space-between;align-items:center}.fight-head small,.fight-head b{display:block}.fight-head small{font-size:10px;opacity:.72}.fight-head b{font-size:16px}.tension-label{text-align:right}.fish-direction{font-size:24px;color:#ffdf9b}.tension-bar{height:9px;border-radius:10px;background:#8dac9b;overflow:hidden;margin:11px 0 5px;position:relative}.safe-zone{position:absolute;left:25%;width:48%;height:100%;background:#e9c77d}.tension-bar i{position:absolute;left:0;top:0;height:100%;width:0;background:#f5efe3;border-right:3px solid #dd6654}.fight-note{font-size:11px;color:#d7e8dc}.controls{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 25px;min-height:121px}.control-copy span,.control-copy strong,.control-copy small{display:block}.control-copy span{font-size:11px;color:#749283;font-weight:700}.control-copy strong{font-size:18px;margin:4px 0}.control-copy small{font-size:12px;color:#71837c}.action-wrap{min-width:220px;text-align:center}.action{background:#e5ab5a;border:0;border-radius:12px;box-shadow:0 4px 0 #b9823d;color:#26463f;font-weight:800;min-height:51px;padding:0 24px;min-width:175px;touch-action:none;user-select:none}.action:active{transform:translateY(2px);box-shadow:0 2px 0 #b9823d}.power{height:5px;background:#dce8da;border-radius:5px;margin:0 0 8px;overflow:hidden}.power span{display:block;height:100%;width:0;background:#e5ab5a}.steer{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:9px;font-size:11px;color:#617f70}.steer[hidden]{display:none}.steer button{border:0;background:#deeadf;color:#244b42;border-radius:7px;width:40px;height:29px;font-size:20px;line-height:1;touch-action:none}.journal{background:#f7f9f2;border-radius:18px;padding:26px;display:flex;flex-direction:column}.journal-heading{display:flex;justify-content:space-between}.eyebrow,.section-heading small{font-size:11px;font-weight:700;color:#7e9a86;letter-spacing:.08em}.journal h1{font-size:clamp(25px,2.3vw,34px);line-height:1.25;letter-spacing:-.04em;margin:12px 0}.journal-heading p{font-size:12px;color:#70897a;line-height:1.65;margin:0}.stamp{display:grid;place-items:center;width:45px;height:45px;border:1px solid #9ab4a1;border-radius:50%;color:#7a9b80;font-family:serif;text-align:center;line-height:.8;font-size:13px;transform:rotate(15deg)}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #d9e4d7;padding:18px 0;margin:25px 0}.stats span,.stats strong{display:block}.stats span{font-size:10px;color:#7d9385}.stats strong{font-size:20px;margin-top:5px}.section-heading{display:flex;justify-content:space-between;align-items:end}.section-heading h2{font-size:17px;margin:4px 0}.section-heading>span{font-size:10px;color:#8b9f91}.bait-list{display:grid;gap:7px;margin-top:12px}.bait{display:flex;align-items:center;text-align:left;gap:10px;border:1px solid #dce8dc;border-radius:10px;background:#fff;padding:9px;color:#315a4b}.bait[aria-pressed=true]{border-color:#578c70;background:#eaf4e9;box-shadow:inset 0 0 0 1px #578c70}.bait-mark{font-size:21px;width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:#eff1df}.bait b,.bait small{display:block}.bait b{font-size:12px}.bait small{font-size:10px;color:#8aa092;margin-top:3px}.journal-actions{margin-top:20px;border-top:1px solid #d9e4d7}.journal-actions button{width:100%;display:flex;align-items:center;text-align:left;gap:11px;border:0;border-bottom:1px solid #d9e4d7;background:transparent;padding:14px 0;color:#264c40}.journal-actions b,.journal-actions small{display:block}.journal-actions b{font-size:13px}.journal-actions small{font-size:10px;color:#93a99a;margin-top:3px}.book-icon{font-size:22px;color:#719886;width:31px}.chevron{margin-left:auto;font-size:23px;color:#95aa9c}.local-note{color:#93a99a;font-size:10px;margin:auto 0 0;padding-top:20px}dialog{max-width:min(650px,calc(100vw - 28px));width:100%;max-height:85vh;border:0;border-radius:20px;background:#f8faf3;color:#1f4b41;padding:24px;box-shadow:0 18px 80px #0e302f55}dialog::backdrop{background:#102c2db3}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:22px}.modal-head button{font-size:23px}#modalBody{margin-top:18px}.fish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.fish-card{border:1px solid #dce8da;background:white;border-radius:12px;overflow:hidden}.fish-image{display:block;width:100%;height:95px;object-fit:contain;background:#fff}.fish-card.locked .fish-image{filter:grayscale(1) brightness(.18);opacity:.2}.fish-meta{padding:9px}.fish-meta b,.fish-meta small{display:block}.fish-meta b{font-size:12px}.fish-meta small{font-size:10px;color:#7c9686;margin-top:4px}.modal-copy{line-height:1.8;color:#536e60;font-size:14px}.setting{padding:15px 0;border-bottom:1px solid #dce8da;display:flex;justify-content:space-between;gap:12px;align-items:center}.setting p{font-size:12px;color:#738c7d;margin:5px 0}.secondary{border:0;border-radius:9px;padding:10px 14px;background:#d9e9dc;color:#245043;font-weight:700}.secondary:disabled{opacity:.5;cursor:not-allowed}.catch-hero{display:flex;align-items:center;gap:20px}.catch-hero .fish-image{width:55%;height:180px;background-color:white;border-radius:12px}.catch-hero b{font-size:23px}.catch-hero p{color:#6d8b77}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}footer{padding:4px 4vw 24px;display:flex;justify-content:space-between;color:#80988a;font-size:11px}footer a{text-decoration:underline}@keyframes bob{50%{transform:translateY(5px)}}@keyframes bite{50%{transform:translateY(13px) rotate(12deg)}}@media(max-width:800px){.top{height:57px;padding:0 15px}.brand{font-size:17px}.brand b{font-size:12px}.back{font-size:12px}.topright{gap:5px}.layout{display:flex;flex-direction:column;padding:10px;gap:10px}.scene{height:55vh;min-height:320px;max-height:560px}.scene-top{top:15px;left:15px;right:15px}.controls{padding:15px;min-height:100px}.control-copy strong{font-size:15px}.control-copy small{font-size:11px}.action-wrap{min-width:130px}.action{min-width:130px;padding:0 12px;font-size:13px}.journal{padding:20px}.journal h1{font-size:24px}.stats{margin:18px 0}.bait-list{grid-template-columns:repeat(3,1fr)}.bait{display:block;text-align:center;padding:8px 3px}.bait-mark{margin:0 auto 6px}.bait small{min-height:24px}.journal-actions{display:grid;grid-template-columns:1fr 1fr;gap:15px}.fish-grid{grid-template-columns:repeat(2,1fr)}.fish-image{height:90px}.scene-message{bottom:15px;font-size:12px}.fight{bottom:14px;left:14px}.catch-hero .fish-image{height:110px}footer{padding:8px 16px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.scene.bay{background-image:url(/fishing/coastal-bay.webp)}.scene:not(.active) #linePath{opacity:0}.scene-actions{display:flex;gap:8px;align-items:center}.spot-switch{background:#f5f8eddf;color:#244d43;border:0;border-radius:30px;padding:9px 12px;font-size:11px;font-weight:700}.catch-hero .fish-image{object-fit:contain}
.game-guide{max-width:1520px;margin:0 auto;padding:24px clamp(22px,4vw,65px);color:#527165;font-size:13px;line-height:1.8}.game-guide h2{font-size:17px;color:#234c40}.game-guide p{max-width:850px}

.sun svg,.book-icon svg,.bait-mark svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.sun svg{width:25px;height:25px}.book-icon svg{width:22px;height:22px}.bait-mark svg{width:23px;height:23px}

.fish-traits{display:block;margin-top:4px;color:#547d68;font-size:10px;line-height:1.4}.fish-meta{min-height:63px}
@media(max-width:420px){.top{gap:8px}.top .back,.top .brand,.top .link{white-space:nowrap}.top .back{font-size:11px}.top .brand{font-size:16px}.top .brand span{margin:0 4px}.top .brand b{font-size:10px;letter-spacing:0}.top .link{padding:4px}.topright{gap:4px}}@media(max-width:350px){.top .brand span,.top .brand b{display:none}}

@media(max-width:420px){.scene-actions{gap:5px}.scene-actions .phase,.spot-switch,.location small{white-space:nowrap}.scene-actions .phase,.spot-switch{font-size:10px;padding:8px 9px}.location small{font-size:10px}}
