/* Fishing World realism pass 2: sensory/cinematic layer only. Gameplay math and saves are unchanged. */
.scene-wrap{--real-glare-x:30%;perspective:1000px;transform:translateZ(0)}
#scene{will-change:filter,transform;transform-origin:50% 70%;transition:filter .45s ease,transform .22s ease}
.realism-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:inherit;mix-blend-mode:normal}
.realism-glare,.realism-haze,.realism-weather,.realism-grain{position:absolute;inset:0;pointer-events:none}
.realism-glare{left:calc(var(--real-glare-x) - 18%);right:auto;width:36%;height:58%;top:-8%;background:radial-gradient(circle at 50% 38%,rgba(255,247,212,.33) 0 2%,rgba(255,229,166,.16) 8%,rgba(255,226,160,.055) 31%,transparent 66%);filter:blur(2px);opacity:.75;transform:translate3d(0,0,0)}
.realism-glare:before,.realism-glare:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,237,197,.12);box-shadow:0 0 20px rgba(255,233,183,.06)}
.realism-glare:before{width:64px;height:64px;left:64%;top:44%;background:rgba(255,220,153,.025)}
.realism-glare:after{width:24px;height:24px;left:80%;top:66%;background:rgba(189,230,222,.04)}
.realism-haze{background:linear-gradient(to bottom,rgba(226,239,237,.08),transparent 28%,transparent 64%,rgba(2,21,29,.12));box-shadow:inset 0 -90px 120px rgba(1,19,27,.18)}
.realism-grain{opacity:.085;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.4) 0 .35px,transparent .55px),radial-gradient(circle at 70% 65%,rgba(0,0,0,.45) 0 .4px,transparent .65px);background-size:7px 7px,9px 9px;mix-blend-mode:soft-light;animation:real-grain .24s steps(2,end) infinite}
.realism-weather{overflow:hidden}
.realism-particle{position:absolute;left:var(--x);top:-12%;animation-duration:var(--d);animation-delay:var(--delay);animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform,opacity}
.realism-particle.rain{width:1px;height:38px;background:linear-gradient(to bottom,transparent,rgba(224,242,251,.48),rgba(236,248,255,.15));transform:rotate(-9deg);animation-name:real-rain}
.realism-particle.snow{width:4px;height:4px;border-radius:50%;background:rgba(246,251,255,.86);box-shadow:0 0 6px rgba(237,249,255,.65);animation-name:real-snow}
.realism-particle.gnat{width:2px;height:2px;border-radius:50%;background:rgba(244,224,167,.62);box-shadow:0 0 5px rgba(255,221,153,.35);animation-name:real-float}
.realism-particle.leaf{width:6px;height:3px;border-radius:100% 0 100% 0;background:rgba(135,154,80,.35);animation-name:real-leaf}
.realism-particle.salt{width:2px;height:2px;border-radius:50%;background:rgba(238,255,251,.55);box-shadow:0 0 4px rgba(210,255,245,.3);animation-name:real-float}
.scene-wrap[data-real-venue="ice"] #scene{filter:saturate(.9) contrast(1.04) brightness(.98)}
.scene-wrap[data-real-venue="coast"] #scene{filter:saturate(.92) contrast(1.05) brightness(.96)}
.scene-wrap[data-real-venue="atoll"] #scene{filter:saturate(1.08) contrast(1.03) brightness(1.02)}
.scene-wrap[data-real-venue="river"] #scene{filter:saturate(1.02) contrast(1.035)}
.scene-wrap[data-real-phase="wait"] .realism-haze{box-shadow:inset 0 -120px 150px rgba(1,22,31,.2)}
.scene-wrap[data-real-phase="bite"] .cinema-vignette{opacity:.78}
.scene-wrap.realism-bite #scene{animation:real-bite-camera .7s cubic-bezier(.2,.7,.2,1)}
.scene-wrap.realism-surge #scene{animation:real-surge-camera .5s ease-out}
.scene-wrap.realism-landed #scene{animation:real-landed-camera .86s cubic-bezier(.2,.7,.2,1)}
.scene-wrap.realism-escaped #scene{animation:real-escape-camera .5s ease-out}
.scene-wrap.realism-bite .scene-caption strong{animation:real-bite-text .7s ease-out;text-shadow:0 2px 8px rgba(0,0,0,.8),0 0 25px rgba(255,219,139,.35)}
.realism-tap-ripple{position:absolute;z-index:3;width:18px;height:7px;margin:-3px 0 0 -9px;border:1.5px solid rgba(231,246,244,.72);border-radius:50%;pointer-events:none;animation:real-tap-ripple .82s ease-out forwards;box-shadow:0 0 8px rgba(210,245,240,.2)}
.venue-bar,.scene-badge,.scene-caption,.cast-meter,.fight-meters,.action-controls,.overlay{z-index:5}

/* Make the in-scene controls read like a real angling HUD instead of a flat web form. */
.cast-meter,.fight-meters{backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);box-shadow:0 10px 28px rgba(0,12,20,.24),inset 0 1px 0 rgba(255,255,255,.06)}
.fight-card{background:linear-gradient(180deg,rgba(3,22,31,.78),rgba(4,28,38,.62));border:1px solid rgba(218,238,235,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
meter,progress{filter:drop-shadow(0 2px 4px rgba(0,0,0,.28))}
meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#2fb56d,#8be17b)}
meter::-webkit-meter-suboptimum-value{background:linear-gradient(90deg,#f0ba4e,#f08b3e)}
meter::-webkit-meter-even-less-good-value{background:linear-gradient(90deg,#e65a4b,#b92e2e)}
.action-controls .action{border-radius:999px;min-width:132px;aspect-ratio:1.15/1;align-self:center;justify-self:center;background:radial-gradient(circle at 34% 24%,#fff0bf 0 4%,#e4bd72 28%,#a87737 70%,#715025 100%);border:3px solid rgba(255,239,197,.8);box-shadow:0 12px 28px rgba(0,0,0,.38),0 0 0 5px rgba(6,29,38,.72),inset 0 2px 5px rgba(255,255,255,.28);text-shadow:0 1px 0 rgba(255,255,255,.18)}
.action-controls .action:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06)}
.action-controls .action:active:not(:disabled){transform:translateY(2px) scale(.985);box-shadow:0 6px 16px rgba(0,0,0,.35),0 0 0 5px rgba(6,29,38,.72),inset 0 3px 7px rgba(74,45,18,.28)}
.action-controls .lean{background:linear-gradient(180deg,rgba(13,46,57,.88),rgba(4,26,34,.84));border-color:rgba(195,222,218,.2);box-shadow:0 8px 20px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05)}
.action-controls .lean[aria-pressed="true"]{background:linear-gradient(180deg,rgba(42,88,88,.92),rgba(18,60,65,.9));box-shadow:0 0 0 2px rgba(189,227,210,.32),0 8px 20px rgba(0,0,0,.22)}
.result-card{background:linear-gradient(155deg,rgba(4,28,39,.97),rgba(8,48,58,.95));box-shadow:0 30px 90px rgba(0,10,17,.64),inset 0 1px 0 rgba(255,255,255,.08);border-color:rgba(220,235,226,.2)}
.result-card #catch-art{filter:drop-shadow(0 14px 20px rgba(0,0,0,.34)) saturate(1.03)}
.result-card #result-title{letter-spacing:.01em;text-shadow:0 3px 18px rgba(0,0,0,.42)}

@keyframes real-grain{0%{transform:translate(0,0)}25%{transform:translate(1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}100%{transform:translate(0,0)}}
@keyframes real-rain{0%{transform:translate3d(var(--drift),-10%,0) rotate(-9deg);opacity:0}8%{opacity:.38}100%{transform:translate3d(calc(0px - var(--drift)),760px,0) rotate(-9deg);opacity:0}}
@keyframes real-snow{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}10%{opacity:.76}50%{transform:translate3d(var(--drift),330px,0) rotate(120deg)}100%{transform:translate3d(0,700px,0) rotate(260deg);opacity:0}}
@keyframes real-float{0%{transform:translate3d(0,660px,0);opacity:0}20%{opacity:.55}55%{transform:translate3d(var(--drift),360px,0);opacity:.34}100%{transform:translate3d(0,80px,0);opacity:0}}
@keyframes real-leaf{0%{transform:translate3d(-30px,-20px,0) rotate(0);opacity:0}12%{opacity:.35}100%{transform:translate3d(120px,700px,0) rotate(620deg);opacity:0}}
@keyframes real-bite-camera{0%{transform:translate3d(0,0,0) scale(1)}14%{transform:translate3d(0,3px,0) scale(1.004)}30%{transform:translate3d(-2px,-1px,0) scale(1.006)}52%{transform:translate3d(1px,0,0) scale(1.003)}100%{transform:none}}
@keyframes real-surge-camera{0%{transform:none}18%{transform:translate3d(-3px,2px,0) rotate(-.08deg)}40%{transform:translate3d(3px,-1px,0) rotate(.07deg)}70%{transform:translate3d(-1px,1px,0)}100%{transform:none}}
@keyframes real-landed-camera{0%{transform:none}32%{transform:translate3d(0,-4px,0) scale(1.006)}100%{transform:none}}
@keyframes real-escape-camera{0%{transform:none}30%{transform:translate3d(2px,2px,0)}60%{transform:translate3d(-2px,1px,0)}100%{transform:none}}
@keyframes real-bite-text{0%{transform:scale(.96);opacity:.7}22%{transform:scale(1.07);opacity:1}100%{transform:none}}
@keyframes real-tap-ripple{0%{transform:scale(.3);opacity:.9}100%{transform:scale(5.8);opacity:0}}

@media(max-width:850px){.action-controls .action{min-width:112px;aspect-ratio:auto;border-radius:18px}.realism-grain{opacity:.06}.realism-particle.rain{height:28px}}
@media(max-width:560px){.realism-glare{opacity:.58}.realism-grain{display:none}.action-controls .action{min-width:0;width:100%;border-radius:14px;border-width:2px;box-shadow:0 8px 20px rgba(0,0,0,.32),0 0 0 3px rgba(6,29,38,.7)}}
@media(prefers-reduced-motion:reduce){.realism-grain,.realism-particle,#scene,.scene-caption strong{animation:none!important}.realism-tap-ripple{display:none}.realism-glare{filter:none}.action-controls .action{transition:none}}
