/* The expedition keeps the watercolor scene quiet and moves learning to the dock. */
.preparation-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:4px 0 22px;padding:20px 26px;background:#fffaf0;border:1px solid #d7dcc6;border-radius:20px;box-shadow:0 5px 18px #5e754709}
.preparation-bar h2{font-family:"AppleMyungjo","Batang",serif;font-size:24px;font-weight:500;margin:7px 0}.preparation-bar p{font-size:13px;line-height:1.7;color:#75846f;margin:0}.preparation-actions{display:flex;align-items:center;gap:10px}.preparation-actions .primary{display:flex;align-items:center;gap:20px}.preparation-bar .eyebrow{font-size:11px}.primary,.secondary{min-height:48px}.scene{height:700px;min-height:650px}.scene-heading{top:15%;left:20%;right:10%}.scene-heading h1{font-size:28px}.scene-heading p{font-size:14px}.scene-heading .eyebrow{font-size:11px}.location-pill small{font-size:12px}.round-button{width:48px;height:48px}.cast-spot{width:118px;height:72px}.cast-spot b{position:absolute;top:50px;left:0;right:0;text-align:center;font-size:12px;font-weight:500;color:#496a57;padding:6px 8px;background:#fffbe5c9;border:1px solid #d9dfc0;border-radius:30px}.cast-spot.selected b{background:#496e58;color:#fffbed}.spot-one{left:calc(61% - 59px);top:calc(48% - 35px)}.spot-two{left:calc(77% - 59px);top:calc(55% - 35px)}
.fishing-controls{bottom:14%;width:360px;max-width:80%;display:grid;grid-template-columns:1fr 1fr;gap:9px}.fishing-controls .timing,.fishing-controls .fishing-button{grid-column:1/-1;width:100%}.fishing-button{font-size:16px;min-height:58px;min-width:0}.auto-button,.relax-button{min-height:46px;border:1px solid #cdd8ba;border-radius:14px;background:#fff9e6eF;color:#5d765c;font-size:12px;padding:10px 8px}.relax-button{background:#e6eddb}.timing{padding:12px 15px 14px}.timing-caption{font-size:11px;line-height:1.5}.timing-track{height:23px}.perfect-zone{font-size:12px;font-weight:700}.track-grade{position:absolute;top:3px;font-size:12px;font-weight:500;line-height:16px;color:#7a805d;pointer-events:none}.grade-low{left:12%}.grade-low-right{right:12%}.grade-mid{left:34%}.grade-mid-right{right:34%}.force-panel{top:35%;left:61%;width:180px}.force-panel>span{font-size:12px}.force-track{height:10px}.resistance{position:absolute;top:27%;left:57%;translate:-50% 0;z-index:5;min-width:235px;max-width:85%;text-align:center;padding:9px 17px;border-radius:30px;background:#fffbeddf;border:1px solid #cedcc0;pointer-events:none}.resistance>span{font-size:13px;display:block;color:#4d765b}.resistance>small{display:block;font-size:11px;margin-top:4px;color:#7e8869}.resistance.strong{border-color:#c5a36b;background:#fff3d9ef}.resistance.strong>span{color:#946d36}.fish-actor{width:var(--fish-size,215px);scale:1;aspect-ratio:1.6}.fish-actor.caught{width:var(--fish-size,215px)}.fish-actor.fighting{opacity:.92}.fish-actor.fighting>.fish-svg{filter:none}.fish-tail{transform-origin:255px 100px;animation:tail-sway 1.4s ease-in-out infinite}.fish-pectoral{transform-origin:84px 114px;animation:fin-sway 2s ease-in-out infinite}.resisting .fish-tail{animation-duration:.3s}.resisting .fish-pectoral{animation-duration:.4s}.impact-word{top:44%;font-size:27px}.outing-meter{font-size:12px;bottom:19%}.outing-meter i{width:9px;height:9px}.scene-nav{min-width:330px}.scene-nav button{font-size:12px;min-height:58px}.below-scene{font-size:12px}.below-scene>p{font-size:12px}.scope-note{font-size:11px}.quiet-button{font-size:12px;min-height:44px}
.specimen{width:100%;max-width:230px;margin:auto;aspect-ratio:1.6}.specimen .fish-svg{display:block;width:100%;height:100%;stroke-width:1}.species-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:22px 0}.species-pick{min-width:0;border:1px solid #d7dfc8;border-radius:18px;padding:12px 10px 17px;background:#f6f4e8;display:flex;flex-direction:column;align-items:center}.species-pick.selected{background:#e8efdc;outline:2px solid #7f9c72;outline-offset:-2px}.species-pick .specimen{max-width:180px}.species-pick strong{font-size:17px}.species-pick small{font-size:12px;color:#78896f;margin-top:7px}.setup-heading{font-size:14px;font-weight:600;margin-top:24px}.point-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.point-picker>button{border:1px solid #d5dec4;border-radius:14px;background:#f8f5e9;text-align:left;padding:15px;min-height:78px;display:flex;flex-direction:column;gap:8px}.point-picker>button.selected{background:#e3ecd7;border-color:#88a477}.point-picker small{font-size:12px;line-height:1.7;color:#738369}.point-picker strong{font-size:14px}.reward-fish,.catch-specimen{max-width:320px}.catch-record{display:flex;justify-content:space-between;gap:15px;padding:17px;background:#edf0df;border:1px solid #d9dfc6;border-radius:13px;font-size:12px}.catch-record b{font-weight:600}.learn-card .hero-char{font-size:90px}.answer-choices .hanja{font-size:42px}.review-feedback{font-size:14px!important}.question-progress{gap:15px;font-size:12px}.question-progress>span:last-child{text-align:right}.answer-explanation .question-glyph{margin:6px 0 10px}#prep-next{margin:15px 0 0 10px}.atlas-tabs{display:flex;gap:9px;margin:22px 0}.atlas-tabs button{flex:1;border:1px solid #d6dfc6;border-radius:12px;background:#f4f2e6;min-height:58px;font-size:15px}.atlas-tabs button.selected{background:#e1ead5;border-color:#81a071}.atlas-tabs small{display:block;font-size:11px;margin-top:5px;color:#78886c}.atlas-comparison{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}.atlas-comparison>figure{margin:0;border:1px solid #dde2cf;background:#f1f2e6;border-radius:15px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;min-width:0}.atlas-comparison .specimen{max-width:300px;flex:1;display:grid;align-items:center}.atlas-comparison img{width:100%;height:210px;object-fit:contain;display:block;background:#faf8ee}.atlas-comparison figcaption{text-align:center;font-size:11px;line-height:1.7;color:#75856d;padding:10px;border-top:1px solid #e0e4d4}.atlas-title{display:flex;align-items:baseline;gap:15px;margin-top:23px}.atlas-title h3{font-size:24px;font-family:serif;font-weight:500;margin:0}.atlas-title i{font-family:Georgia,serif;font-size:15px;color:#7d886d}.atlas-records{display:flex;gap:35px;padding:20px 0}.atlas-records>div{display:flex;flex-direction:column;gap:6px}.atlas-records strong{font-size:30px;font-weight:500;font-family:Georgia,serif}.atlas-records strong small{font:12px system-ui;margin-left:5px}.atlas-records span{font-size:12px;color:#79896e}.atlas-sources{font-size:12px;line-height:1.8;margin:15px 0 24px;color:#74836b}.atlas-sources a{text-decoration:underline;text-underline-offset:3px}.atlas-sources summary{cursor:pointer;min-height:40px;padding:10px 0}.atlas-photo-note{text-align:center;padding:40px 15px;color:#809276;font-size:12px}.expedition-tank .tank-fish{width:30%;max-width:170px;height:92px}.expedition-tank small{display:block;text-align:center;color:#4c735c;font-size:10px;margin-top:-12px}.expedition-tank{height:255px}.mode-picker button{min-height:48px}.text-button{min-height:44px;font-size:12px}.muted{font-size:12px;line-height:1.8}
@keyframes tail-sway{0%,100%{transform:scaleX(1) rotate(0deg)}50%{transform:scaleX(.88) rotate(3deg)}}@keyframes fin-sway{0%,100%{transform:rotate(0)}50%{transform:rotate(9deg)}}
@media(max-width:900px){.preparation-bar{padding:19px;gap:15px}.preparation-actions{gap:8px}.preparation-actions .primary{gap:10px;font-size:13px}.preparation-actions .secondary{font-size:13px}.scene-heading{top:16%;left:15%;right:8%}.scene-heading h1{font-size:26px}.fishing-controls{width:340px;max-width:78%}.resistance{top:28%}.force-panel{top:37%}.outing-meter{right:18px}}
@media(max-width:600px){.preparation-bar{padding:17px;margin:0 0 17px;display:block;border-radius:17px}.preparation-bar h2{font-size:22px}.preparation-bar p{font-size:12px}.preparation-actions{margin-top:15px}.preparation-actions .primary{flex:1;justify-content:space-between;padding:12px 15px}.preparation-actions .secondary{padding:12px}.scene{height:710px;min-height:710px;max-height:none}.scene-top{top:13px}.scene-heading{top:16%;left:7%;right:7%}.scene-heading h1{font-size:23px}.scene-heading p{font-size:12px}.scene-heading .eyebrow{font-size:10px}.location-pill small{font-size:11px}.force-panel{top:38%;left:60%;width:155px}.resistance{top:29%;left:54%;padding:8px 12px;min-width:225px}.resistance>span{font-size:12px}.resistance>small{font-size:11px}.fishing-controls{width:83%;max-width:83%;bottom:13%;gap:8px}.fishing-button{font-size:14px;min-height:57px;padding:13px 10px}.timing-caption{font-size:11px;gap:5px;flex-wrap:wrap}.timing-caption>span{display:none}.timing{padding:11px 13px 13px}.timing-track{height:23px}.auto-button,.relax-button{font-size:11px;min-height:44px}.outing-meter{bottom:11%;right:14px;font-size:10px}.outing-meter i{width:7px;height:7px}.scene-nav{min-width:275px;bottom:12px}.scene-nav button{width:76px;font-size:11px;min-height:55px}.angler{bottom:31%;width:36%;left:-4%}.fish-actor,.fish-actor.caught{width:var(--fish-size,215px)}.impact-word{top:45%;font-size:23px;white-space:nowrap}.below-scene{gap:12px;align-items:flex-start}.below-scene>p{font-size:11px;line-height:1.7}.below-scene>span:first-child{white-space:nowrap;font-size:10px;margin-top:3px}.tiny-leaf{display:none}.species-picker{gap:7px}.species-pick{padding:10px 4px 13px;border-radius:13px}.species-pick strong{font-size:15px}.species-pick small{font-size:10px}.point-picker{gap:8px}.point-picker>button{padding:12px;min-height:86px}.point-picker strong{font-size:13px}.point-picker small{font-size:11px}.atlas-comparison{gap:10px}.atlas-comparison img{height:135px}.atlas-comparison figcaption{font-size:10px;padding:8px}.atlas-title{flex-wrap:wrap;gap:8px}.atlas-title i{font-size:14px}.catch-record{font-size:11px;padding:14px}.question-progress{font-size:11px}.question-glyph{font-size:64px}.answer-choices .hanja{font-size:40px}#prep-next{margin-left:0;width:100%}#prep-hide-answer{width:100%}.reward-fish,.catch-specimen{max-width:250px}.expedition-tank small{font-size:10px}.brand small{letter-spacing:.5px;font-size:8px}.scope-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){.fish-tail,.fish-pectoral{animation:none}.fish-actor.caught{animation:none}}

/* Natural-history sprites: transparent originals, native proportions, one shared size scale. */
.fish-actor{transition:none;filter:drop-shadow(0 5px 4px #355b6020)}
.fish-actor.fighting{opacity:.97}
.fish-actor.fighting>.natural-fish{filter:none}
.natural-fish{transform-origin:var(--mouth-x) var(--mouth-y);transform-box:view-box}
.fish-actor.fighting>.natural-fish{animation:natural-breathe 2.8s ease-in-out infinite}
.fish-actor.resisting>.natural-fish{animation:natural-resist .55s ease-in-out infinite}
.natural-specimen{aspect-ratio:auto;display:flex;align-items:center;justify-content:center}
.natural-specimen .natural-fish{width:var(--specimen-width,100%);height:auto;flex:none;display:block}
.species-pick .natural-specimen{height:86px;max-width:190px}
.atlas-comparison .natural-specimen{min-height:150px;max-width:300px;padding:12px;box-sizing:border-box}
.measured-specimen{width:100%;max-width:none}
.catch-specimen.measured-specimen{height:230px;max-width:500px;margin:5px auto}
.catch-size-tag{display:table;margin:0 auto 20px!important;padding:5px 16px;border:1px solid #cdd8bc;border-radius:30px;font-size:12px!important;color:#627e61;background:#eef2e2}
.size-guide-intro{font-size:13px!important;line-height:1.8!important}
.size-comparison{display:grid;gap:12px}
.size-row{padding:12px 16px 7px;background:#edf1e5;border:1px solid #d4dfc9;border-radius:15px}
.size-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#486b57}
.size-caption strong{font-weight:600}.size-caption span{font-family:Georgia,serif;font-size:19px}.size-caption small{font:11px system-ui;color:#78876f}
.size-water{height:112px;display:flex;align-items:center;border-bottom:1px solid #b9cbb2;background:repeating-linear-gradient(90deg,#a7bfa0 0,#a7bfa0 1px,transparent 1px,transparent 10%) left bottom/100% 5px no-repeat}
.size-specimen{width:min(100%,250px);height:100%;justify-content:flex-start;padding-left:5px;box-sizing:border-box}
.size-specimen .natural-fish{max-height:none;object-fit:contain;object-position:left center}
.natural-tank{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px;padding:25px 18px;box-sizing:border-box;height:auto!important;min-height:220px}
.natural-tank .tank-fish{position:relative;inset:auto;width:100%;max-width:none;height:auto;animation:none;transform:none}
.natural-tank .tank-specimen{height:126px}
.natural-tank small{font-size:12px;margin:2px 0 0}.natural-tank small b{font:14px Georgia,serif;margin-left:6px}
@keyframes natural-breathe{0%,100%{transform:scaleY(.99)}50%{transform:scaleY(1.01)}}
@keyframes natural-resist{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.5deg)}}
@media(max-width:600px){.species-pick .natural-specimen{height:64px}.atlas-comparison .natural-specimen{min-height:135px;padding:8px}.catch-specimen.measured-specimen{height:140px}.size-water{height:96px}.size-specimen{width:min(100%,216px)}.size-caption{font-size:12px}.size-caption span{font-size:18px}.natural-tank{gap:12px 6px;padding:18px 10px}.natural-tank .tank-specimen{height:86px}.natural-tank small{font-size:11px}.natural-tank small b{font-size:12px}.force-panel{width:190px}}
@media(prefers-reduced-motion:reduce){.fish-actor.fighting>.natural-fish,.fish-actor.resisting>.natural-fish{animation:none}}

/* The engine supplies the visible scoring boundaries on the timing container. */
.timing{--high-start:44.5%;--high-width:11%;--mid-start:38%;--mid-width:24%;--low-start:30%;--low-width:40%;background:linear-gradient(145deg,#fffcf0f5,#f4efdcf5);border-color:#d4d3b7;box-shadow:0 5px 18px #315c4220}
.timing-track{height:26px;background:linear-gradient(90deg,#dbdfd0,#eef0e2 50%,#dbdfd0);box-shadow:inset 0 1px 4px #60745e21}
.near-zone,.timing .good-zone,.timing .perfect-zone{position:absolute;top:0;height:100%;box-sizing:border-box}
.near-zone{left:var(--low-start);width:var(--low-width);background:#b9c9a6;border-radius:7px}
.timing .good-zone{left:var(--mid-start);width:var(--mid-width);background:linear-gradient(#82ae8a,#729e7d);border-radius:5px}
.timing .perfect-zone{left:var(--high-start);width:var(--high-width);background:linear-gradient(#fff2ba,#e7c66c);border-color:#c3a557;border-radius:4px;color:#705b2c;box-shadow:0 0 0 2px #fff4cb80;z-index:1}
.timing .track-grade{font-size:10px;top:5px;line-height:14px}
.timing .grade-low{left:33%;color:#5b7359}.timing .grade-low-right{right:33%;color:#5b7359}
.timing .grade-mid{left:40%;color:#fffce7}.timing .grade-mid-right{right:40%;color:#fffce7}
.timing .needle{top:-5px;height:34px;width:3px;background:#304f40;box-shadow:0 0 0 2px #fffbee;z-index:3;transition:none}
.timing .needle:before{background:#304f40}
.timing[data-aim="high"] .perfect-zone,.timing[data-result="high"] .perfect-zone{background:#fff0aa;box-shadow:0 0 0 2px #fff9db,0 0 15px #f9dc7b}
.timing[data-result="miss"] .needle,.timing[data-result="miss"] .needle:before{background:#9e7761}
.timing[data-result="high"]{border-color:#c7ac68}.timing[data-result="miss"]{border-color:#cdbb9b}
.impact-word[data-quality="high"]{color:#fff0b7;text-shadow:0 2px 2px #52693c,0 0 16px #f4d283}
.impact-word[data-quality="miss"]{color:#fff7e7;text-shadow:0 2px 4px #76654a;font-size:22px}
@media(max-width:600px){.timing-track{height:26px}.timing .track-grade{font-size:10px}.impact-word[data-quality="miss"]{font-size:19px}}
