/* White surfaces requested for all menus and empty spaces. */
:root{--cream:#fff}dialog,.parchment,.spot,.fish-tile,.upgrade-card,.unlock,#toast,.cooler,.close{background:#fff;border-color:#e3ebed}.hud{border-color:white}.avatar{border-color:white}.round{background:#fff;border-color:white;box-shadow:0 4px 0 #aec5cb,0 5px 15px #153f512b}.compass{background:#ffffffd9;border-color:#fff}.joystick{background:#ffffff20;border-color:#fff9}#stick{background:#fffc;border-color:white}#loading{background:#fff}.fish-tile small,.dialog-sub,.muted{color:#617986}.white-button{background:#fff;color:#154b64;border:1px solid #c9dce3;border-radius:24px;padding:12px 22px;box-shadow:0 3px 0 #c4d7de;font-weight:900}.return-market{position:fixed;right:26px;top:23px;z-index:4;font-size:13px;padding:12px 20px}#tutorial{top:93px}dialog{box-shadow:0 25px 90px #0d354f66;border-width:3px}.close{background:#fff;border-color:#d4e1e5;color:#234f63}.fish-art{filter:none;object-fit:contain}.spot .preview{border-color:#e8f0f0}.menu-footer{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:24px 0 0}.menu-footer .blue{font-size:16px;padding:12px 24px}.tabs button,.shop-tabs button{background:#fff;border-color:#d6e3e7}.tabs button.selected{background:#eef8fa}.cozy-splash{padding:0 0 20px;border-color:#fff;border-radius:17px;width:min(660px,92vw);background:#fff;color:#173e57;overflow:hidden}.cozy-splash::backdrop{background:linear-gradient(#1a405c33,#1a405c55),url('assets/lake.png') center/cover;backdrop-filter:blur(4px)}.splash-scene{position:relative}.splash-art{display:block;width:100%;height:auto;aspect-ratio:426/330}.splash-play{position:absolute;left:36.65%;top:65.5%;width:23.95%;height:10.3%;border:1px solid #d2dce0;background:#fff;border-radius:28px;color:#122e43;font:600 clamp(14px,2vw,20px) 'Nunito';box-shadow:0 3px 7px #194c6326}.splash-options{display:flex;justify-content:center;gap:15px;padding:17px 10px 0}.splash-options button{background:white;border:0;color:#35647c;font-size:13px;padding:8px 12px;border-bottom:1px solid #dce8ec}.splash-caption{font-size:8px;letter-spacing:2px;margin:17px 0 0}.cozy-splash .close{top:9px;right:9px;opacity:.85}.market-screen{width:min(430px,96vw);padding:0;max-height:95svh;overflow:auto;border:4px solid white;border-radius:25px;background:white}.market-stage{position:relative;min-height:650px;padding-top:385px;background:white}.market-art{position:absolute;inset:0 0 auto;height:413px;overflow:hidden;background:#548f91}.seller-art{display:block;width:100%;height:100%;object-fit:cover}.market-heading{position:absolute;top:16px;left:10px;right:10px;background:#fff;border:1px solid #e1e8e8;border-radius:16px;padding:15px 13px 14px 48px;display:flex;align-items:center;box-shadow:0 3px 15px #133b4920}.market-heading h1{font:900 19px 'Nunito';margin:0 0 4px;color:#143e59}.market-heading p{font-size:10px;margin:0;font-weight:800;line-height:1.5}.screen-number{position:absolute;left:-2px;top:9px;width:42px;height:42px;background:white;border:2px solid #c5d9dc;border-radius:50%;display:grid;place-items:center;font-size:23px}.catch-panel{position:relative;margin:0 10px;padding:11px 12px 13px;background:#fff;border:1px solid #dce7ea;border-radius:19px;box-shadow:0 6px 13px #153f5814}.catch-panel h2{font-size:17px;margin:0 0 10px}.catch-panel h2>span{font-size:24px;color:#2b8b73;vertical-align:middle;margin-right:5px}.catch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.catch-slot{position:relative;height:90px;min-width:0;border:1px solid #d6e4e7;border-radius:12px;background:#fff;padding:5px 4px}.catch-slot .fish-art{height:48px;width:100%;margin:0}.fish-count{position:absolute;right:5px;top:45px;font-size:11px}.catch-price{position:absolute;left:7px;bottom:8px;display:flex;gap:4px;align-items:center;font-size:11px}.coin-token{display:inline-block;flex-shrink:0;width:18px;height:18px;border:2px solid #fff0a2;outline:1px solid #dda43a;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe891,#edac20);box-shadow:inset 0 0 0 2px #ffd968}.fish-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.empty-slot{display:grid;place-items:center;background:#fff}.empty-slot>span{color:#dae5e9;font-size:20px}.market-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e2ebed;margin-top:11px;padding-top:10px;gap:10px}.market-total small{display:block;font-size:16px;margin-bottom:5px}.market-total strong{display:flex;align-items:center;gap:9px;font-size:31px;line-height:1}.market-total strong .coin-token{width:28px;height:28px}.market-total button{min-width:147px;font-size:22px;padding:13px 25px}.empty-catch{font-size:10px;text-align:center;line-height:1.6;margin:14px 0 0;color:#728b96}.market-actions{display:flex;justify-content:space-between;gap:10px;padding:17px 12px 13px}.market-actions button{font-size:13px;padding:12px 18px;min-width:0;flex:1}.market-screen .close{position:fixed;top:auto;right:auto;transform:translate(-42px,10px);margin-left:100%;background:white;z-index:3;width:29px;height:29px;font-size:22px;opacity:.9}.shop-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-right:35px}.shop-heading .dialog-title{margin:0}.shop-balance{display:flex;align-items:center;gap:7px;background:#f0f8fb;border-radius:23px;padding:9px 14px;font-size:17px}.shop-tabs{display:flex;gap:10px;margin:20px 0}.shop-tabs button{border:1px solid #d1e2e7;border-radius:13px;padding:12px 22px}.shop-tabs button.selected{background:#1c6e91;color:white;border-color:#1c6e91}.boat-list{display:flex;flex-direction:column;gap:14px}.boat-offer{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;padding:22px;border:1px solid #d6e5e9;border-radius:18px;background:white;align-items:center}.boat-offer.owned{border-color:#80bd9e;box-shadow:inset 0 0 0 1px #80bd9e}.boat-art{background:white;border-radius:13px;overflow:hidden;align-self:stretch;display:flex;align-items:center}.shop-art{width:100%;height:auto;max-height:220px;display:block}.boat-offer>div+div{position:relative;padding-left:3px}.boat-offer h2{font-size:22px;line-height:1.2;margin:0 0 6px}.boat-offer p{font-size:12px;line-height:1.6;color:#627d8a;font-weight:700}.boat-tier{position:absolute;left:-43px;top:0;border:3px solid white;background:#266b88;color:white;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:21px;box-shadow:0 0 0 1px #adc8d3}.boat-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;font-size:10px}.boat-stat>i{width:80px;height:9px;display:block;border-radius:7px;background:#b2cbd1;overflow:hidden}.boat-stat b{height:100%;display:block;background:#39a476;border-radius:7px}.boat-offer button{margin-top:10px;min-width:0;width:100%;font-size:14px;padding:10px 13px}.rod-benefit{color:#2d8f74!important}.level-scene{height:240px;overflow:hidden;border-radius:15px}.level-art{width:100%;height:100%;display:block}.levelup .dialog-title{margin:20px 0 10px}.upgrade-card,.fish-tile,.unlock{background:#fff}.return-market:hover,.white-button:hover{background:#f5fbff}#catchCard>div{background:white;border-color:#d7e8e8}.parchment{background:white}
@media(max-width:700px){.return-market{top:82px;right:12px;font-size:10px;padding:9px 12px}.place-label{max-width:calc(100% - 150px)}.place-label small{line-height:1.5}#tutorial{top:143px}.market-screen{width:min(430px,97vw);max-height:94svh;border-width:3px}.market-stage{padding-top:330px;min-height:590px}.market-art{height:357px}.market-heading h1{font-size:17px}.market-heading p{font-size:9px}.catch-panel{margin:0 7px;padding:10px}.catch-grid{gap:5px}.catch-slot{height:81px}.catch-slot .fish-art{height:43px}.fish-count{top:40px}.catch-price{font-size:10px;bottom:7px;left:5px;gap:3px}.coin-token{width:15px;height:15px}.market-total strong{font-size:27px}.market-total button{font-size:20px;padding:12px 19px;min-width:135px}.market-actions{padding:14px 9px 11px;gap:8px}.market-actions button{font-size:12px;padding:11px 12px}.shop-heading .dialog-title{font-size:27px}.shop-balance{font-size:13px;padding:8px 10px}.boat-offer{grid-template-columns:1fr 1fr;padding:13px;gap:17px}.boat-offer h2{font-size:17px}.boat-offer p{font-size:10px}.boat-tier{left:-27px;top:-3px;width:25px;height:25px;font-size:15px}.boat-stat{font-size:8px;gap:5px}.boat-stat>i{width:60px}.boat-offer button{font-size:11px;padding:9px}.shop-tabs button{font-size:13px;padding:10px 20px}.splash-options{gap:2px}.splash-options button{font-size:11px;padding:7px 12px}.cozy-splash{max-height:90svh}.splash-caption{font-size:7px;letter-spacing:1.3px}.level-scene{height:180px}.bottom-nav{gap:8px}.place-label strong{font-size:14px}}
@media(max-height:650px) and (min-width:700px){.market-stage{padding-top:245px}.market-art{height:272px}.market-screen{max-height:96svh}.market-stage{min-height:540px}.cozy-splash{width:min(520px,85vw)}.splash-options{padding-top:8px}.splash-caption{margin-top:10px}.market-heading{top:10px;padding-top:10px;padding-bottom:10px}}
.market-screen{--hero:clamp(185px,43svh,385px)}.market-stage{padding-top:calc(var(--hero) - 20px);min-height:0}.market-art{height:var(--hero)}.market-screen .close{position:absolute;right:5px;top:4px;margin-left:0;transform:none}.market-heading{right:10px}.market-heading h1{padding-right:3px}
 .settings{color:#174a64;background:#fff;border-color:#fff}.shop-art{mix-blend-mode:multiply}
.market-screen{--hero:clamp(150px,calc(43svh - 50px),330px)}.market-stage{padding-top:calc(var(--hero) + 75px)}.market-art{top:88px;height:var(--hero)}.market-heading{top:12px;z-index:1}.catch-slot .fish-art,.fish-tile .fish-art,.shop-art{filter:contrast(1.22) brightness(1.05)}
/* Full-screen scene artwork sits behind live, accessible menu controls. */
body:has(dialog[open])::after{content:'';position:fixed;inset:0;z-index:5;background:var(--page-art) center/cover no-repeat;pointer-events:none}
body[data-menu=dock],body[data-menu=spots],body[data-menu=shop]{--page-art:url('assets/dock.png')}
body[data-menu=market]{--page-art:url('assets/market.png')}
body[data-menu=level]{--page-art:url('assets/lagoon.png')}
body[data-menu=splash]{--page-art:url('assets/splash-background.png')}
dialog::backdrop{background:transparent;backdrop-filter:none}
dialog:not(.cozy-splash){background:#fff;box-shadow:0 16px 65px #103a5159}
dialog.cozy-splash{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100svh;max-height:none;border:0;border-radius:0;padding:0;overflow:auto;background:linear-gradient(90deg,#092f4b45,transparent 75%),url('assets/splash-background.png') center/cover no-repeat;box-shadow:none;color:white;text-align:center}
.cozy-splash #modalContent{min-height:100%;display:flex;align-items:center;justify-content:flex-start;padding:5svh 8vw}
.splash-overlay{width:min(420px,44vw);position:relative;padding:20px 0}
.splash-title{font-family:Georgia,serif;font-size:clamp(52px,6.5vw,106px);line-height:.94;font-weight:400;letter-spacing:-3px;color:#fff;margin:0;text-shadow:0 3px 6px #07385380}
.splash-title span{display:block;font-size:.72em;letter-spacing:-1px;margin-bottom:8px}
.splash-divider{font-size:24px;letter-spacing:9px;margin:23px 0 16px;color:#fff}
.splash-motto{font-size:10px;letter-spacing:2px;font-weight:800;text-shadow:0 2px 4px #163e55}
.splash-controls{display:flex;flex-direction:column;gap:13px;width:min(230px,100%);margin:32px auto 0}
.splash-controls button{min-height:49px;width:100%;font-size:20px;border-radius:30px}
.cozy-splash .close{display:none}
.level-screen .level-scene{display:none}
button:focus-visible{outline:3px solid #2699ca;outline-offset:4px}
@media(max-width:700px){.cozy-splash #modalContent{padding:7svh 5vw;align-items:flex-start;justify-content:center}.splash-overlay{width:min(370px,90vw)}.splash-title{font-size:clamp(55px,14vw,83px)}.splash-controls{margin-top:26px;gap:12px}.splash-motto{font-size:8px;letter-spacing:1px}dialog.cozy-splash{background-position:58% center}.splash-divider{margin:18px 0 13px}.splash-overlay{padding:0}.splash-controls button{min-height:45px;font-size:18px}}
@media(max-height:560px){.cozy-splash #modalContent{align-items:center;padding:16px 6vw}.splash-title{font-size:53px}.splash-controls{margin-top:16px;gap:9px}.splash-divider{margin:12px 0}.splash-controls button{min-height:38px;padding:7px 16px;font-size:17px}.splash-overlay{width:min(330px,48vw)}}
@media(max-width:700px) and (max-height:560px) and (orientation:portrait){.splash-overlay{width:min(330px,90vw)}.splash-title{font-size:57px}.splash-controls{width:205px}.splash-motto{font-size:8px}.splash-divider{font-size:19px}}
.game-logo{display:block;width:100%;height:auto;max-height:34svh;object-fit:contain;filter:drop-shadow(0 4px 5px #103b5440)}
.splash-title{letter-spacing:normal}.splash-motto{margin-top:17px}
body[data-menu=market]{--page-art:url('assets/market-background.png')}
dialog.market-screen{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100svh;max-height:none;border:0;border-radius:0;padding:0;background:url('assets/market-background.png') center/cover no-repeat;box-shadow:none;overflow:auto}
.market-screen .market-stage{background:transparent;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;padding:110px 5vw 22px}
.market-screen .market-art{display:none}
.market-screen .market-heading{top:24px;left:5vw;right:auto;max-width:420px;padding:18px 22px 18px 53px}
.market-screen .catch-panel{width:min(420px,100%);margin:0;border:2px solid white;box-shadow:0 8px 30px #143b5055}
.market-screen .market-actions{background:#fff;border-radius:0 0 18px 18px;width:min(420px,100%);margin-top:-5px;padding-top:18px;box-shadow:0 10px 30px #143b5030}
.market-screen .close{position:fixed;top:17px;right:18px;width:34px;height:34px;font-size:26px;opacity:1}
@media(max-width:700px){.market-screen .market-stage{padding:104px 12px 12px;min-height:100svh;align-items:center;gap:0}.market-screen .market-heading{top:14px;left:12px;right:50px;padding:12px 10px 12px 42px}.market-heading .screen-number{width:34px;height:34px;font-size:20px;top:10px}.market-screen .market-heading h1{font-size:16px}.market-screen .market-heading p{font-size:9px}.market-screen .catch-panel{margin-top:clamp(95px,25svh,260px)}.market-screen .catch-slot{height:74px}.market-screen .market-actions{padding-bottom:10px}.market-screen .catch-panel h2{margin-bottom:5px}.market-screen .market-total{padding-top:8px;margin-top:8px}.market-screen .market-total button{font-size:19px;padding:10px 19px}}
@media(max-width:700px) and (max-height:560px){.market-screen .catch-panel{margin-top:105px}.market-screen .market-stage{padding-bottom:14px}.game-logo{max-height:31svh}.splash-controls{margin-top:18px}}
/* Transparent sprite imports preserve their painted palette. */
.fish-row .fish-art{width:32px;height:22px;object-fit:contain;flex-shrink:0}.catch-slot .fish-art,.fish-tile .fish-art,.shop-art{filter:none;mix-blend-mode:normal}.shop-art{object-fit:contain}.fish-art{object-fit:contain}
#worldLoadStatus{position:sticky;bottom:8px;z-index:6;text-align:center;padding:14px 20px;margin:16px auto 0;width:fit-content;max-width:100%;background:#fff;color:#154b64;border:2px solid #8ebfcd;border-radius:22px;font-size:14px;font-weight:800;box-shadow:0 5px 25px #10384a33}
