.fishing-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1080px,calc(100vw - 24px));max-width:1080px;max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:3px solid #466f53;border-radius:16px;background:#f4efdb;color:#2c493e;box-shadow:0 20px 80px #102b4066;font:14px/1.6 system-ui,sans-serif;writing-mode:horizontal-tb}
.fishing-dialog::backdrop{background:#163e4099;backdrop-filter:blur(3px)}
.fishing-rpg-window{border:12px solid transparent;border-image:url('../assets/fishing/rpg-window-skin.png') 64 stretch;background:#102d33f5;background-clip:padding-box;box-shadow:0 4px 12px #071f2866;image-rendering:pixelated;color:#fff6df}
.fishing-rpg-message{position:absolute;z-index:3;left:2.5%;right:2.5%;bottom:2.5%;min-height:18%;max-height:42%;display:flex;align-items:center;gap:10px;padding:5px 8px;overflow:auto}
#kusaFishingWindow .fishing-rpg-message #fishingStatus{background:none;border:0;border-radius:0;min-height:0;padding:0;margin:0;flex:1;color:#fff6df;font:500 clamp(12px,1.3vw,17px)/1.65 system-ui,sans-serif;overflow-wrap:anywhere;white-space:pre-wrap;text-shadow:0 1px 1px #001c22}
#kusaFishingWindow .fishing-rpg-next{min-height:32px;min-width:32px;background:transparent;border:0;padding:2px;color:#ffe7a6;align-self:flex-end;font-size:17px}
.fishing-choice-layer{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:#061d2833}
.fishing-rpg-choices{width:min(300px,78%);padding:8px 10px;display:flex;flex-direction:column;gap:7px}
#kusaFishingWindow #fishingChoiceTitle{font-size:clamp(12px,1.2vw,15px);color:#fff6df;text-align:center;margin:0 0 4px}
#kusaFishingWindow .fishing-rpg-choice-button{position:relative;min-height:44px;border:0;border-radius:0;padding:8px 22px;background:transparent url('../assets/fishing/rpg-choice-skin.png') center/100% 150% no-repeat;color:#fff5d8;font-size:clamp(13px,1.3vw,17px);text-shadow:0 1px #001e23}
#kusaFishingWindow .fishing-rpg-choice-button::before{content:'▶';position:absolute;left:10px;visibility:hidden;font-size:12px}
#kusaFishingWindow .fishing-rpg-choice-button[data-selected=true]::before{visibility:visible}
#kusaFishingWindow .fishing-rpg-choice-button:is(:hover,:focus-visible,[data-selected=true]){filter:brightness(1.25);outline:1px solid #f7df9e;outline-offset:1px;background-color:transparent}
@media(max-width:560px){.fishing-rpg-window{border-width:9px}.fishing-rpg-message{padding:3px 5px;gap:4px;max-height:45%}.fishing-rpg-choices{gap:4px;padding:5px 6px}.fishing-rpg-choice-button{min-height:42px!important}}
.fishing-dialog [hidden]{display:none!important}.fishing-dialog *{box-sizing:border-box}.fishing-dialog h2,.fishing-dialog h3,.fishing-dialog h4,.fishing-dialog p{margin:0 0 8px}.fishing-dialog button{cursor:pointer;min-height:40px;white-space:normal;border:1px solid #93ad8c;border-radius:8px;background:#fffbed;color:#31583f;padding:7px 12px;font:inherit;font-weight:650;touch-action:manipulation}.fishing-dialog button:hover:not(:disabled){background:#e0efcd}.fishing-dialog button:focus-visible,.fishing-dialog select:focus-visible{outline:3px solid #dfa84b;outline-offset:2px}.fishing-dialog button:disabled{opacity:.5;cursor:default}.fishing-dialog select,.fishing-dialog input{width:100%;min-height:40px;border:1px solid #9ba989;background:#fffdf3;color:#274a3b;border-radius:6px;padding:6px;font:inherit}.fishing-dialog label{display:block;font-size:12px;margin-top:7px}
.fishing-dialog .fishing-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#345c48;color:#fff6dc;padding:10px 16px}.fishing-head h2{font-size:20px;margin:0}.fishing-head small{font-size:10px;letter-spacing:3px;color:#c7d7af}.fishing-head>div:last-child{display:flex;gap:6px}.fishing-hud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:10px 14px 4px;position:sticky;top:74px;background:#f4efdb;z-index:4}.fishing-hud>div{border:1px solid #d3d0ac;border-radius:8px;padding:5px 9px;background:#fff9e5;min-width:0}.fishing-hud span{display:block;font-size:11px;white-space:nowrap}.fishing-hud strong{font-size:17px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.fishing-info{display:flex;justify-content:space-between;gap:10px;padding:3px 16px 8px;font-size:12px;color:#557560}.fishing-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;padding:0 14px 14px}.fishing-main{min-width:0}.fishing-stage{position:relative;overflow:hidden;border:3px solid #657a4f;border-radius:9px;background:#71a9b3;aspect-ratio:3/2}.fishing-stage canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.fishing-map-links{position:absolute;inset:0}.fishing-map-links button{position:absolute;font-size:12px;min-height:32px;padding:4px 8px;background:#fff9e5ee;box-shadow:0 2px 6px #1e3b4a66}.fishing-map-house{left:3%;top:17%}.fishing-map-river{left:54%;top:40%}.fishing-map-sea{left:7%;top:68%}#fishingStatus{background:#fffae8;border:1px solid #d5d1ac;border-radius:9px;min-height:56px;padding:10px;margin:9px 0;overflow-wrap:anywhere}.fishing-actions{display:flex;gap:8px}.fishing-actions #fishingAction{flex:1;background:#3a7854;color:#fff9de;font-size:17px;min-height:48px}.fishing-sidebar{display:flex;flex-direction:column;gap:10px}.fishing-sidebar section{padding:10px;background:#ebe9cf;border:1px solid #d3d2b1;border-radius:10px}.fishing-sidebar h3{font-size:14px}.fishing-sidebar p,.fishing-sidebar small{font-size:12px}.fishing-sidebar section>button{width:100%;margin-top:4px}.fishing-character-options{display:flex;gap:6px}.fishing-character-options button{flex:1}.fishing-character-options [aria-pressed=true]{background:#407656;color:#fff8dd}.fishing-exchange{margin:0 14px 14px;padding:14px;background:#fff9e6;border:2px solid #99af7c;border-radius:10px}.fishing-exchange-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fishing-exchange-columns>div{padding:10px;border:1px solid #d3d3b3;border-radius:8px}.fishing-exchange-columns input{margin-bottom:6px}.fishing-exchange-columns p{font-size:12px;min-height:35px;margin-top:7px}.fishing-token{pointer-events:none;position:absolute;left:0;top:0;font-size:24px;z-index:15;text-shadow:0 2px 4px #0005}.kusa-games-icons [data-fishing-open] img{image-rendering:pixelated;object-fit:contain;display:block;margin:auto}
@media(max-width:700px){.fishing-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:10px}.fishing-layout{grid-template-columns:1fr;padding:0 8px 10px;gap:10px}.fishing-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fishing-sidebar section{min-width:0}.fishing-hud{grid-template-columns:repeat(3,minmax(0,1fr));padding:6px 8px;gap:4px;position:static}.fishing-hud strong{font-size:15px}.fishing-head small{display:none}.fishing-dialog .fishing-head{padding:8px}.fishing-head h2{font-size:18px}.fishing-head button{font-size:12px;padding:6px 8px}.fishing-exchange-columns{grid-template-columns:1fr}.fishing-character-options{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.fishing-dialog *{scroll-behavior:auto!important}}
/* Keep legible text on the fishing game's cream panels under every site theme. */
#kusaFishingWindow{--ink:#2c493e;--muted:#557560;--deep:#31583f;color:#2c493e;background:#f4efdb}
#kusaFishingWindow :is(p,label,small,span,strong,h3,h4){color:#2c493e}
#kusaFishingWindow .fishing-head{background:#345c48;color:#fff6dc;background-image:none}
#kusaFishingWindow .fishing-head :is(h2,small){color:#fff6dc}
#kusaFishingWindow button{color:#31583f;background:#fffbed}
#kusaFishingWindow :is(select,input){color:#274a3b;background:#fffdf3;border-color:#9ba989}
#kusaFishingWindow .fishing-actions #fishingAction,#kusaFishingWindow .fishing-character-options [aria-pressed=true]{background:#3a7854;color:#fff9de}
#kusaFishingWindow .fishing-hud{position:sticky;top:var(--fishing-head-height,74px)}
.base-theme .kusa-games-icons{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:599px){.base-theme .kusa-games-icons{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fishing-walk-controls{display:flex;align-items:center;gap:14px;padding:10px;background:#f4efdb;border-radius:8px;position:sticky;bottom:0;z-index:3}.fishing-dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,46px);gap:4px;touch-action:none;user-select:none;-webkit-user-select:none}.fishing-dpad button{touch-action:none;min-width:46px;min-height:44px;background:#315e48;color:#fff6dc;font-size:20px}.fishing-dpad button[data-walk=up]{grid-column:2}.fishing-dpad button[data-walk=left]{grid-column:1;grid-row:2}.fishing-dpad button[data-walk=down]{grid-column:2;grid-row:2}.fishing-dpad button[data-walk=right]{grid-column:3;grid-row:2}.fishing-walk-controls p{font-size:12px;color:#31583f;line-height:1.6}.fishing-dpad button:active{background:#668947}.fishing-stage{touch-action:pan-y}@media(max-width:560px){.fishing-walk-controls{gap:8px}.fishing-walk-controls p{font-size:10px}}
.fishing-stage .fishing-plant-effect{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%;image-rendering:pixelated}
.fishing-plant-effect[hidden],.fishing-window-plant[hidden]{display:none!important}
#kusaFishingWindow .fishing-window-plant{position:absolute;z-index:1;left:33%;top:11%;width:12%;height:18%;min-height:44px;min-width:44px;padding:0;border:0;border-radius:6px;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation}
#kusaFishingWindow .fishing-window-plant:focus-visible{outline:3px solid #fff1ae;outline-offset:2px;background:#fff1ae33}

/* Crystal blessing uses the same local portraits as the collectible card. */
.fishing-crystal-status{margin:4px 12px;padding:8px 12px;border:1px solid #5599ad;border-radius:7px;background:#092e40;color:#e2faff;font-size:12px;line-height:1.5}
.fishing-crystal-status[hidden],.fishing-crystal-effect[hidden]{display:none!important}
.fishing-crystal-effect{position:absolute;inset:0;z-index:35;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;overflow:hidden;background:radial-gradient(ellipse at 50% 65%,#1a6b84dc,#040d25ed 75%);color:#edfdff;text-align:center;isolation:isolate}
.fishing-crystal-effect>strong{font-size:clamp(19px,3vw,32px);letter-spacing:.22em;text-shadow:0 0 12px #73dfff;z-index:2}
.fishing-crystal-effect>p{margin:0;font-size:clamp(10px,1.6vw,14px);z-index:2}.fishing-crystal-effect>button{position:absolute;right:8px;bottom:8px;font-size:11px;z-index:3}
.crystal-portrait{position:relative;height:65%;aspect-ratio:2/3;z-index:1;filter:drop-shadow(0 0 16px #84efff88);animation:crystal-arrive 1.3s ease-out both}
.crystal-portrait video{width:100%;height:100%;object-fit:cover;border-radius:8px}.crystal-frame{position:absolute;inset:-2%;width:104%;height:104%;pointer-events:none}
.crystal-ripples{position:absolute;left:8%;right:8%;bottom:9%;height:28%;border:2px solid #b0f5ff;border-radius:50%;box-shadow:0 0 25px #70e7ff,inset 0 0 25px #70e7ff;animation:crystal-ripple 2.6s ease-out infinite}
.crystal-shards{position:absolute;inset:0}.crystal-shards i{position:absolute;left:calc(4% + var(--i)*6%);top:60%;width:8px;height:18px;background:linear-gradient(130deg,#fff,#72dfff55);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);animation:crystal-rise 3s ease-in-out infinite;animation-delay:calc(var(--i)*-.21s)}
@keyframes crystal-arrive{from{opacity:0;transform:translateY(18px) scale(.88)}to{opacity:1;transform:none}}
@keyframes crystal-ripple{from{transform:scale(.35);opacity:0}35%{opacity:.8}to{transform:scale(1.45);opacity:0}}
@keyframes crystal-rise{from{transform:translateY(80px) rotate(0);opacity:0}35%{opacity:.9}to{transform:translateY(-220px) rotate(100deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.fishing-crystal-effect *{animation:none!important}.crystal-shards{display:none}.crystal-ripples{opacity:.35}}

#kusaFishingWindow .fishing-crystal-effect>strong,#kusaFishingWindow .fishing-crystal-effect>p{color:#edfdff!important}
#kusaFishingWindow .fishing-crystal-effect>button{font-size:11px;min-height:32px;padding:5px 8px}
@media(max-width:560px){#kusaFishingWindow .fishing-crystal-effect>p{max-width:70%;font-size:10px;line-height:1.4}.crystal-portrait{height:61%}.fishing-crystal-effect{gap:3px}}

#kusaFishingWindow .fishing-crystal-effect>button{top:8px;bottom:auto}

#kusaFishingWindow #fishingCrystalStatus{background:linear-gradient(100deg,#e2fbff 0%,#fff6d7 100%);border:2px solid #57bad1;color:#12364a!important;font-weight:750;text-shadow:none;box-shadow:0 2px 10px #347f9635;}
/* Expand the complete fishing game inside the mobile browser viewport. */
#kusaFishingWindow.fishing-expanded{width:min(1280px,calc(100vw - 16px));max-width:none}
@media(max-width:799px),(hover:none) and (pointer:coarse){
 #kusaFishingWindow.fishing-expanded{position:fixed;inset:0;margin:0;width:100vw;width:100dvw;height:100vh;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;display:flex;flex-direction:column;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
 #kusaFishingWindow.fishing-expanded .fishing-head{position:static;flex:none;padding:5px 6px;gap:4px}
 #kusaFishingWindow.fishing-expanded .fishing-head h2{font-size:15px;white-space:nowrap}
 #kusaFishingWindow.fishing-expanded .fishing-head small{display:none}
 #kusaFishingWindow.fishing-expanded .fishing-head>div:last-child{gap:3px}
 #kusaFishingWindow.fishing-expanded .fishing-head button{font-size:11px;padding:4px 6px;min-height:36px}
 #kusaFishingWindow.fishing-expanded .fishing-hud{position:static;flex:none;grid-template-columns:repeat(5,minmax(0,1fr));padding:4px;gap:3px}
 #kusaFishingWindow.fishing-expanded .fishing-hud>div{padding:3px;overflow:hidden}
 #kusaFishingWindow.fishing-expanded .fishing-hud span{font-size:9px}
 #kusaFishingWindow.fishing-expanded .fishing-hud strong{display:block;font-size:11px;max-height:32px;overflow:auto;line-height:1.3}
 #kusaFishingWindow.fishing-expanded .fishing-info{flex:none;font-size:10px;padding:0 6px 2px}
 #kusaFishingWindow.fishing-expanded .fishing-crystal-status{flex:none;margin:2px 4px;padding:3px;font-size:10px}
 #kusaFishingWindow.fishing-expanded .fishing-layout{display:flex;flex:1;min-height:0;padding:4px;gap:0}
 #kusaFishingWindow.fishing-expanded .fishing-main{flex:1;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:6px}
 #kusaFishingWindow.fishing-expanded .fishing-stage{grid-row:1;justify-self:center;align-self:center;min-height:0;max-width:100%;aspect-ratio:3/2;touch-action:none}
 #kusaFishingWindow.fishing-expanded .fishing-walk-controls{grid-row:2;position:static;padding:4px;justify-content:center}
 #kusaFishingWindow.fishing-expanded .fishing-walk-controls p{display:none}
 #kusaFishingWindow.fishing-expanded .fishing-actions{grid-row:3;min-width:0}
 #kusaFishingWindow.fishing-expanded .fishing-sidebar{display:none}
 #kusaFishingWindow.fishing-expanded.fishing-options-open .fishing-sidebar,#kusaFishingWindow.fishing-expanded .fishing-exchange:not([hidden]){display:flex;flex-direction:column;position:absolute;inset:calc(var(--fishing-head-height,48px) + env(safe-area-inset-top)) 6px 6px;z-index:8;overflow:auto;padding:12px;margin:0;background:#f4efdb;border:2px solid #466f53;border-radius:8px;overscroll-behavior:contain}
 #kusaFishingWindow.fishing-expanded .fishing-exchange:not([hidden]){z-index:9}
 #kusaFishingWindow.fishing-expanded .fishing-character-options{flex-direction:row}
}
@media(orientation:landscape) and (max-height:600px){
 #kusaFishingWindow.fishing-expanded .fishing-main{grid-template-columns:minmax(0,1fr) 160px;grid-template-rows:minmax(0,1fr) auto}
 #kusaFishingWindow.fishing-expanded .fishing-stage{grid-column:1;grid-row:1/3}
 #kusaFishingWindow.fishing-expanded .fishing-walk-controls{grid-column:2;grid-row:1;align-self:end}
 #kusaFishingWindow.fishing-expanded .fishing-actions{grid-column:2;grid-row:2}
 #kusaFishingWindow.fishing-expanded .fishing-dpad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,40px)}
 #kusaFishingWindow.fishing-expanded .fishing-dpad button{min-width:40px;min-height:40px;padding:3px}
}
