/* Original fish sprites are reused; runtime variants are supplied by the renderer. */
.home-sanctuary{position:absolute;z-index:5;left:48%;top:8%;width:clamp(170px,24%,310px);padding:0;color:#fff0bd;filter:drop-shadow(3px 6px 2px #26351e55);text-align:center}
.home-sanctuary-water{display:block;position:relative;height:clamp(95px,11vw,145px);border:8px solid #918c58;border-bottom-width:12px;border-radius:44% 55% 46% 52%;outline:3px solid #283327;overflow:hidden;background:linear-gradient(#467a8388,#24555a99),url('./assets/catch-water-v6.webp') center/cover;box-shadow:inset 0 5px 15px #183b3c99,0 3px 0 #333b28}
.home-sanctuary-label{display:grid;gap:3px;position:relative;background:#e5d49f;border:2px solid #3b4029;border-radius:5px;color:#35472d;padding:5px 9px;margin:-3px auto 0;max-width:90%;box-shadow:2px 3px #30382588}
.home-sanctuary-label b{font:800 clamp(13px,1.5vw,19px) var(--serif)}.home-sanctuary-label small{font-size:10px}.home-sanctuary:focus-visible{outline:3px solid #f8e791;outline-offset:4px;border-radius:15px}
.sanctuary-swimmer{position:absolute;left:var(--swim-x);top:var(--swim-y);width:clamp(27px,4vw,56px);height:30px;animation:sanctuary-swim var(--swim-duration) ease-in-out var(--swim-delay) infinite alternate;transform:scaleX(var(--swim-direction));filter:drop-shadow(1px 3px 1px #123e4266)}
.sanctuary-swimmer img{width:100%;height:100%;object-fit:contain}.sanctuary-water-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;color:#ecedc5;text-shadow:1px 1px #314b3c}
.sanctuary-ripple{position:absolute;display:block;width:25px;height:8px;border:1px solid #d5f0da66;border-radius:50%;pointer-events:none}.ripple-one{left:20%;top:27%}.ripple-two{right:25%;bottom:25%;width:36px}
@keyframes sanctuary-swim{0%{translate:-10px -2px;rotate:-4deg}100%{translate:15px 5px;rotate:4deg}}
dialog[data-view=sanctuary],dialog[data-view=fish-rank]{width:min(1040px,calc(100vw - 24px))}
.sanctuary-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px}.sanctuary-toolbar>div{display:grid;gap:4px}.sanctuary-toolbar strong{font-size:17px;color:#3b5133}.sanctuary-toolbar small{font-size:11px;color:#787856}.sanctuary-toolbar button{font-size:12px;white-space:nowrap}
.sanctuary-feature{display:grid;grid-template-columns:1.3fr 1fr;gap:17px;margin-bottom:16px;align-items:stretch}.sanctuary-feature-water{position:relative;min-height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:3px solid #485c3a;border-radius:10px;background:linear-gradient(#23575f55,#2b646a77),url('./assets/catch-water-v6.webp') center/cover;box-shadow:inset 0 5px 30px #263b3566}
.sanctuary-feature-water>.sanctuary-fish-art{width:82%;height:150px;object-fit:contain;filter:drop-shadow(3px 6px 2px #183b3c88)}.sanctuary-water-caption{position:absolute;bottom:8px;left:12px;font-size:11px;color:#f1e5b7;text-shadow:1px 1px #223f36}
.sanctuary-detail{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}.sanctuary-detail h3{font:800 26px var(--serif);margin:0;color:#354c31}.sanctuary-measure{font-size:15px;margin:0;color:#59633f}.sanctuary-measure span{padding:0 5px;color:#9b9264}.sanctuary-total-score{color:#8b5a2f;font:800 33px Georgia,serif}.sanctuary-total-score small{font:12px var(--sans,sans-serif)}
.sanctuary-score-detail{font-size:11px;color:#767552;margin:0 0 2px}.sanctuary-detail .primary-button{font-size:13px;padding:10px 18px}.sanctuary-network-note{font-size:10px;color:#777654;line-height:1.5}.sanctuary-upload-status{font-size:12px;line-height:1.5;color:#6a542e;margin:0}
.sanctuary-specimens{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.specimen-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 5px;border:2px solid #aaa16c;border-radius:7px;background:#e5ddb4;min-width:0;color:#3d4f34}.specimen-card.selected{border-color:#455d36;background:#d9dfad;box-shadow:0 0 0 1px #dfb65d}.specimen-card:hover{background:#e3e6b9}.specimen-card-art{display:block;width:100%;height:57px}.specimen-card-art img{display:block;width:100%;height:100%;object-fit:contain}.specimen-card-name{font-size:13px;font-weight:700}.specimen-card-score{font-size:16px;font-weight:800;color:#8a6031}.specimen-card-score small{font-size:10px;font-weight:normal}.specimen-card-badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:inherit;min-height:16px}.specimen-badge{display:inline-block;font-size:9px;line-height:1.5;padding:1px 5px;border-radius:4px;border:1px solid #818464;white-space:nowrap;background:#e7e7ca;color:#4d5d4b}.trophy-gold,.mutation-gold{color:#775321;background:#f1da86;border-color:#b58c3a}.trophy-silver,.mutation-silver{color:#4b5960;background:#e5e9e4;border-color:#909f9c}.mutation-prismatic{color:#f2ede5;border-color:#65627f;background:linear-gradient(110deg,#252a38,#686375,#282b37)}
.sanctuary-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:14px 0 8px}.sanctuary-pagination span{font-size:11px;color:#737650}.sanctuary-pagination button{font-size:12px;padding:7px 12px}.sanctuary-rules{margin-top:10px;font-size:11px;color:#777654;line-height:1.75}.sanctuary-rules summary{cursor:pointer;font-weight:700}.sanctuary-rules p{margin:6px 0}.sanctuary-empty{text-align:center;padding:16px 10px 12px;color:#586143}.sanctuary-empty h3{font:700 22px var(--serif);margin:15px 0 10px}.sanctuary-empty p{font-size:12px;line-height:1.9;margin:0}.sanctuary-empty-water{height:100px;max-width:310px;margin:auto;border:5px solid #7a8050;border-radius:50%;display:grid;place-items:center;background:linear-gradient(#23575f55,#2b646a77),url('./assets/catch-water-v6.webp') center/cover;font-size:38px;color:#e8e4bd}.sanctuary-return{text-align:center;padding-top:15px}.sanctuary-rank-status{padding:14px;background:#e5dcb3;border:1px solid #aaa274;border-radius:6px;font-size:12px;line-height:1.8;color:#686b47}
.fish-rank-list{display:grid;gap:7px}.fish-rank-row{display:grid;grid-template-columns:34px 100px 1fr auto;gap:12px;align-items:center;padding:9px 12px;border:1px solid #aaa474;border-radius:7px;background:#e6ddb4}.fish-rank-position{font:700 23px Georgia,serif;color:#857044;text-align:center}.fish-rank-art{height:63px}.fish-rank-art img{width:100%;height:100%;object-fit:contain}.fish-rank-info{display:grid;gap:4px;min-width:0}.fish-rank-info>b{font-size:13px;overflow-wrap:anywhere}.fish-rank-info>span{font-size:11px;color:#737550}.fish-rank-score{font:700 22px Georgia,serif;color:#886032}.fish-rank-score small{font:10px sans-serif}
@media(max-width:760px){.home-sanctuary{width:26%;min-width:140px;left:37%;top:7%}.home-sanctuary-water{height:100px;border-width:6px}.home-sanctuary-label small{font-size:8px}.sanctuary-feature{grid-template-columns:1.1fr 1fr;gap:12px}.sanctuary-feature-water{min-height:160px}.sanctuary-detail h3{font-size:22px}.sanctuary-total-score{font-size:27px}.sanctuary-specimens{gap:7px}.specimen-card-name{font-size:11px}.specimen-badge{font-size:8px;padding:1px 3px}.fish-rank-row{grid-template-columns:23px 68px 1fr auto;gap:7px;padding:8px}.fish-rank-score{font-size:18px}}
@media(max-height:530px) and (orientation:landscape){.home-sanctuary{left:28%;top:4%;width:20%;min-width:110px;max-width:170px}.home-menu .home-orders{left:52%;right:auto}.home-sanctuary-water{height:78px}.home-sanctuary-label{padding:3px 5px;gap:1px}.home-sanctuary-label b{font-size:12px}.sanctuary-swimmer{height:20px;width:30px}.sanctuary-toolbar{padding-bottom:9px}.sanctuary-toolbar strong{font-size:14px}.sanctuary-toolbar small{font-size:10px}.sanctuary-feature{gap:12px;margin-bottom:10px;grid-template-columns:1fr 1fr}.sanctuary-feature-water{min-height:145px}.sanctuary-feature-water>.sanctuary-fish-art{height:115px}.sanctuary-detail{gap:4px}.sanctuary-detail h3{font-size:21px}.sanctuary-total-score{font-size:25px}.sanctuary-measure{font-size:12px}.sanctuary-detail .primary-button{padding:7px 12px;font-size:12px}.sanctuary-network-note,.sanctuary-score-detail{font-size:9px}.specimen-card{padding:5px 4px}.specimen-card-art{height:43px}.sanctuary-empty{padding-top:3px}.sanctuary-empty-water{height:65px}.sanctuary-empty h3{font-size:19px;margin:9px 0}.sanctuary-empty p{font-size:11px}.sanctuary-return{padding-top:10px}}
@media(prefers-reduced-motion:reduce){.sanctuary-swimmer{animation:none}}
.sanctuary-upload-status[data-status=success]{color:#3f682f;font-weight:700}.sanctuary-upload-status[data-status=error]{color:#924b35}
.sanctuary-sale-controls,.sanctuary-sale-confirm{grid-column:1/-1;display:grid;gap:6px;min-width:0}
.sanctuary-sale-controls{margin-top:3px}.sanctuary-sale-controls>button{justify-self:start;max-width:100%;min-height:40px;white-space:normal;overflow-wrap:anywhere}
.sanctuary-sale-controls>small{font-size:12px;line-height:1.5;color:#6b6e4b}
.sanctuary-sell-button{border-color:#a47c43;color:#80582d;background:#ead5a3}
.sanctuary-sale-confirm{margin:5px 0;padding:10px 12px;border:2px solid #a5854c;border-radius:7px;background:#f0dfb2;color:#63502d}
.sanctuary-sale-confirm>strong{font-size:14px;line-height:1.5}.sanctuary-sale-confirm p{font-size:12px;line-height:1.6;margin:0}
.sanctuary-sale-confirm>div{display:flex;gap:8px;flex-wrap:wrap}.sanctuary-sale-confirm button{min-height:40px;font-size:12px;padding:8px 12px;white-space:normal;overflow-wrap:anywhere}
.sanctuary-sale-result{padding:8px 10px;border:1px solid #8c9863;border-radius:6px;background:#dbe4b7;font-size:12px;line-height:1.5;color:#3f632f;margin:0 0 10px}
.sanctuary-detail .sanctuary-view-rank{padding:7px 14px;font-size:12px;min-height:40px}
.fish-my-rank{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 13px;padding:13px 16px;border:2px solid #717e43;border-radius:8px;background:linear-gradient(105deg,#e0e6b1,#efe3ae)}
.fish-my-rank>div:first-child{display:grid;gap:5px;min-width:0}.fish-my-rank small{font-size:11px;color:#657244}.fish-my-rank strong{font-size:19px;color:#425f32}.fish-my-rank span{font-size:12px;color:#737248}.fish-my-rank-art{height:60px;width:130px;flex-shrink:0}.fish-my-rank-art img{width:100%;height:100%;object-fit:contain}.fish-my-rank-empty{display:block}.fish-my-rank-empty strong{font-size:15px}.fish-my-rank-empty p{font-size:12px;line-height:1.6;color:#69704b;margin:7px 0 0}
.fish-rank-info>b{display:flex;align-items:center;gap:6px}.fish-rank-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;flex-shrink:0}
@media(max-height:530px) and (orientation:landscape){.fish-my-rank{padding:8px 12px;margin-bottom:9px}.fish-my-rank strong{font-size:16px}.fish-my-rank-art{height:43px;width:95px}.fish-my-rank small,.fish-my-rank span{font-size:10px}.sanctuary-toolbar small{max-width:52vw;line-height:1.45}}
