*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#233e3c;color:#faf3da;font-family:Georgia,serif}button{font:14px system-ui;color:inherit;border:1px solid #edebd044;background:#203b38b8;padding:11px 16px;cursor:pointer;border-radius:5px;transition:background .2s}button:hover{background:#37534c}button:focus-visible{outline:2px solid #f6d496;outline-offset:4px}[hidden]{display:none!important}#game{height:100%;position:relative;isolation:isolate;touch-action:none}canvas{position:absolute;width:100%;height:100%;image-rendering:pixelated;inset:0}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#15333155,transparent 25%,transparent 55%,#112f34b8)}header{position:absolute;top:32px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:14px}.mark{font-size:46px;color:#e2cb9d}h1{font-size:25px;letter-spacing:6px;margin:0 0 5px;font-weight:normal}.eyebrow{font:11px system-ui;letter-spacing:2.4px;color:#e0d9bd}nav{display:flex;gap:9px;align-items:center}#count{margin-left:10px;color:#d7c28d;font-size:12px}.location{position:absolute;top:123px;left:42px;font:11px system-ui;letter-spacing:1.8px;color:#f2ecd4}.dot{display:inline-block;width:6px;height:6px;background:#eacb91;border-radius:50%;margin-right:8px}.sep{padding:0 10px;opacity:.5}.scene-note{position:absolute;right:43px;top:126px;font-size:14px;font-style:italic;color:#f4efd5b8}#hud{position:absolute;bottom:81px;left:50%;transform:translateX(-50%);width:min(500px,85vw);text-align:center;text-shadow:0 2px 8px #17362f}h2{font-size:34px;font-weight:normal;margin:9px 0}#instruction{font:14px/1.7 system-ui;color:#e4e9d6;margin:0 auto;max-width:450px}.meter{height:13px;border:1px solid #f0e7c477;background:#1c3538;position:relative;margin:20px auto 0;border-radius:3px;overflow:hidden}#zone{position:absolute;height:100%;left:76%;width:9%;background:#dbb971}#fill{height:100%;width:0;background:#a3cbb8}#needle{position:absolute;top:0;width:3px;height:100%;background:#fff9e3;box-shadow:0 0 5px #fff}.meterLabels{display:flex;justify-content:space-between;font:10px system-ui;letter-spacing:1.8px;margin-top:8px;color:#dddcc5}#fightCue{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:14px;font-family:system-ui;text-align:left}#direction{font-size:40px;color:#f9d68f}#fightCue b{font-size:15px;letter-spacing:2px}#fightCue small{display:block;font-size:12px;color:#c7d8ca;margin-top:3px}#strain{display:flex;align-items:center;gap:12px;font:10px system-ui;letter-spacing:1.4px;margin:12px auto 0;width:80%}#strain>div{height:4px;background:#16312f;flex:1}#strainFill{display:block;height:100%;width:0;background:#dfb47d}footer{position:absolute;bottom:24px;left:40px;right:40px;display:flex;justify-content:space-between;font:10px system-ui;letter-spacing:1px;color:#c6d4c4}.key{font:9px system-ui;border:1px solid #ccd8c34d;padding:3px 6px;margin-right:5px;border-radius:3px}.footerDot{margin:0 12px;color:#d8bc7e}#overlay{position:absolute;inset:0;background:#122b2b80;backdrop-filter:blur(5px);display:grid;place-items:center}.panel{position:relative;background:#f1ead4;color:#314b42;border:6px double #9eaf98;width:min(560px,92vw);max-height:85vh;overflow:auto;padding:32px;box-shadow:0 25px 100px #102c2c66}.close{position:absolute;right:12px;top:12px;background:transparent;color:#314b42;border:0;font-size:26px;padding:0 8px}.panel h2{margin-top:12px}.panel p{font:15px/1.8 system-ui;color:#506158}.panel .eyebrow{color:#75846e}.panel button.action{background:#34594c;width:100%;margin-top:18px;padding:14px}.fishrow{display:flex;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid #a2ad964f;font:14px system-ui}.fishrow canvas{position:static;width:72px;height:40px}.fishrow small{display:block;color:#70806b;margin-top:5px}.fishrow .number{margin-left:auto}.catchart{position:relative!important;display:block;width:180px!important;height:100px!important;margin:15px auto}.catchmeta{display:flex;justify-content:center;gap:30px;font:13px system-ui;color:#637663}.catchpanel{text-align:center}#pause{position:absolute;inset:0;place-content:center;text-align:center;background:#193c39aa;font:18px system-ui;display:grid}@media(max-width:700px){header{top:20px;left:20px;right:20px}h1{font-size:18px;letter-spacing:3px}.brand .eyebrow{display:none}.mark{font-size:30px}nav{gap:5px}button{padding:9px;font-size:12px}#count{display:none}.location{left:20px;top:83px;font-size:9px}.scene-note{display:none}footer{left:20px;right:20px;font-size:9px}footer>span:last-child{display:none}#hud{bottom:65px}h2{font-size:29px}}
button.action{color:#faf3da!important}

#game,#game button{cursor:url("bobber.svg") 4 3, pointer}

#resume{position:absolute;z-index:5;top:45%;left:50%;transform:translate(-50%,-50%);padding:20px;background:#f1ead4;color:#314b42;box-shadow:0 12px 50px #16363180}#saveStatus{position:absolute;left:40px;bottom:48px;font:11px system-ui;color:#c7d5be;pointer-events:none}#hud{pointer-events:none}

#inventoryButton{position:absolute;left:24px;top:44%;display:flex;gap:10px;align-items:center;padding:14px 17px;border-color:#d6c28d66}#bagCount{background:#e4d4a9;color:#314b42;border-radius:3px;padding:2px 6px;font-size:12px}.releaseFish{margin-left:auto;background:#34594c;color:#faf3da;font-size:12px}.emptyBag{padding:28px 0;text-align:center}@media(max-width:700px){#inventoryButton{left:12px;top:30%;padding:10px;font-size:12px}.panel{padding:24px}.fishrow{gap:9px}}

#bossButton{position:absolute;left:24px;top:53%;max-width:220px;border-color:#d2ae67;color:#ffe2a2}#braceButton{position:absolute;right:30px;bottom:190px;padding:20px;border:2px solid #f0d193;background:#30595c;font-weight:bold;z-index:3}#victory{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 24px 9vh;text-align:center;background:linear-gradient(transparent 40%,#102f3de8)}#victory h2{font-size:clamp(24px,3vw,40px);min-height:1.3em}#victory p{font-size:clamp(18px,2vw,26px);min-height:1.5em;color:#e9dab7}#victory button{margin-top:18px}@media(max-width:700px){#bossButton{top:39%;left:12px;max-width:150px}#braceButton{right:15px;bottom:260px;padding:12px}}
#game:has(#victory:not([hidden])) #hud,#game:has(#victory:not([hidden])) header,#game:has(#victory:not([hidden])) footer,#game:has(#victory:not([hidden])) .location,#game:has(#victory:not([hidden])) .scene-note,#game:has(#victory:not([hidden])) #inventoryButton,#game:has(#victory:not([hidden])) #bossButton,#game:has(#victory:not([hidden])) #saveStatus{visibility:hidden}

#bossButton{top:96px;left:50%;transform:translateX(-50%);max-width:min(440px,90vw);width:max-content;background:#8a252a;border:2px solid #e56b62;color:#ffead2;z-index:3;box-shadow:0 5px 25px #5a0d1260;font-weight:bold;letter-spacing:1px}#bossButton:disabled{opacity:.9;cursor:default}#bossButton[data-omen="true"]{animation:omen 1.3s ease-out}@keyframes omen{0%{opacity:0;transform:translate(-50%,-20px) scale(.8)}35%{opacity:1;transform:translate(-50%,0) scale(1.08);box-shadow:0 0 48px #d63c38}100%{transform:translate(-50%,0) scale(1)}}@media(max-width:700px){#bossButton{top:112px;font-size:12px;padding:10px}}@media(prefers-reduced-motion:reduce){#bossButton[data-omen="true"]{animation:none}}

/* Catch cards leave the fisherman and held catch unobscured. */
#overlay[data-catch="true"]{background:transparent;backdrop-filter:none;place-items:center end;padding:24px;pointer-events:none}
#overlay[data-catch="true"] .panel{pointer-events:auto;width:min(340px,32vw);padding:24px;max-height:76vh;background:#f1ead4f5}
#game:has(#overlay[data-catch="true"]:not([hidden])) #hud{visibility:hidden}
#game:has(#overlay[data-catch="true"]:not([hidden])) #saveStatus,#game:has(#overlay[data-catch="true"]:not([hidden])) footer{visibility:hidden}
#victory{padding:0 24px 7vh;background:linear-gradient(transparent 42%,#081e30b8);text-shadow:0 2px 14px #081e30}
#victory>.eyebrow{position:absolute;top:12%;color:#e8d2a0;letter-spacing:4px;font-size:12px}
#victory h2{color:#f6e6b9;max-width:800px;line-height:1.3}
#victory #victorySecond{color:#f07878;max-width:700px;line-height:1.5;min-height:3em;font-style:italic}
#victory button{border-color:#d9bd7b88;background:#234b4c;margin-top:10px;animation:victory-button 1.2s ease-out}
@keyframes victory-button{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){#overlay[data-catch="true"]{place-items:end center;padding:10px 10px 14px}#overlay[data-catch="true"] .panel{width:94vw;max-height:32vh;padding:12px 20px}#overlay[data-catch="true"] .catchart,#overlay[data-catch="true"] .catchpanel>p{display:none}#overlay[data-catch="true"] h2{font-size:22px;margin:5px 0}#overlay[data-catch="true"] .action{margin-top:9px;padding:8px}#overlay[data-catch="true"] .catchmeta{gap:16px;font-size:12px}#victory{padding:0 18px 6vh}#victory>.eyebrow{top:14%;font-size:10px;letter-spacing:2px}#victory h2{font-size:26px}#victory #victorySecond{font-size:20px}}
@media(prefers-reduced-motion:reduce){#victory button{animation:none}}

#bossButton{overflow:hidden;isolation:isolate}#bossButton::after{content:'';position:absolute;inset:-40% auto -40% -60%;width:40%;background:linear-gradient(90deg,transparent,#ffaca94d,transparent);transform:skewX(-18deg);pointer-events:none;animation:boss-wave 4.8s ease-in-out infinite}#bossButton[data-cooling="true"]::after{animation:none;opacity:0}#bossButton[data-cooling="true"]{background:#5e343b;border-color:#a56d73;color:#eed9d3}@keyframes boss-wave{0%,25%{left:-60%}70%,100%{left:135%}}#victoryReward{font:12px/1.5 system-ui;color:#d5c28d;letter-spacing:1px;margin-bottom:8px}.legendary{border:1px solid #b5a06a;border-radius:4px;background:#d7c59224;padding:15px 8px;margin-top:14px}.legendary canvas{width:96px;height:52px}.legendary b{color:#7b6033}.legendary small{font-size:12px}@media(max-width:700px){.legendary{flex-wrap:wrap}.legendary .releaseFish{margin-left:auto}#victoryReward{font-size:11px;letter-spacing:.3px}}@media(prefers-reduced-motion:reduce){#bossButton::after{animation:none;opacity:0}}

@media(max-width:700px){header{align-items:flex-start;gap:8px}.brand{gap:6px}header nav{flex-wrap:wrap;justify-content:flex-end;max-width:190px}header nav button{font-size:11px;padding:8px}.brand h1{font-size:16px;letter-spacing:2px}.brand .mark{font-size:24px}.location{top:110px}#bossButton{top:142px}}

#currency{position:absolute;left:24px;top:calc(44% - 65px);min-width:140px;padding:10px 14px;background:#203b38cf;border:1px solid #d6c28d66;border-radius:5px;font:14px system-ui;color:#f3d99f}#currency span{display:block;font-size:10px;letter-spacing:2px;margin-bottom:4px}#currency b{font-size:18px}.inventoryRow{flex-wrap:wrap;gap:12px}.inventoryRow canvas{flex:0 0 72px}.fishDetails{flex:1;min-width:150px}.fishActions{display:flex;justify-content:flex-end;gap:8px;width:100%}.fishActions .releaseFish{margin-left:0}.sellFish{background:#876c39;color:#fff2d6;border-color:#a58a4d}.inventoryNote{font-size:12px!important}.saleReceipt{background:#dce6ce;padding:12px;border-left:3px solid #66875d}.saleControls{display:grid;gap:12px;font:14px system-ui}.saleControls label{color:#506158}.saleControls input[type=number]{width:100%;padding:12px;font:18px system-ui;border:1px solid #9eaf98;background:#fffaf0;color:#314b42;border-radius:4px}.saleControls input[type=range]{width:100%;accent-color:#577864}.saleControls output{padding:16px;background:#dfdfc5;font-size:20px;color:#34594c}.saleControls button{background:#34594c;color:#faf3da}.saleControls .action{margin-top:0!important}.saleControls button:disabled{opacity:.4;cursor:default}#saleError:empty{display:none}#saleError{color:#9f3a32}.saleControls input:focus-visible{outline:2px solid #547b68;outline-offset:3px}#game:has(#victory:not([hidden])) #currency{visibility:hidden}@media(max-width:700px){#currency{left:12px;top:calc(30% - 64px);min-width:126px;padding:8px 10px}.inventoryRow canvas{flex-basis:60px;width:60px}.fishDetails{min-width:140px}.fishActions button{font-size:13px;padding:10px}}
#overlay:not([data-catch="true"]){z-index:4}
#adminButton{position:absolute;right:24px;bottom:65px;z-index:8;font:12px system-ui;border-color:#d4ae7766;background:#24383edb;color:#e8cda2}#overlay[data-admin=true]{z-index:9}.adminGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.adminGrid button{background:#34594c;color:#faf3da;font-size:13px;min-height:46px}.adminGrid button[aria-pressed=true]{background:#886835;border-color:#d6b574}.adminNotice{font-size:13px!important;line-height:1.5!important}#adminSpecies{display:block;width:100%;padding:12px;margin:10px 0;background:#fffaf0;color:#314b42;border:1px solid #91a28b;font:15px system-ui}.panel h3{font-size:20px;font-weight:normal;margin:24px 0 12px}@media(max-width:700px){#adminButton{right:12px;bottom:45px;padding:8px}.adminGrid{gap:7px}.adminGrid button{padding:9px;font-size:12px}}

#skillButton{position:absolute;left:24px;top:calc(44% + 62px);border-color:#9dc8c17a;color:#d5eee4}#game:has(#victory:not([hidden])) #skillButton{visibility:hidden}
.prismatic{white-space:nowrap;text-shadow:none}.prismatic i{display:inline-block;font-style:normal;font-weight:bold;color:hsl(calc(var(--letter)*42) 90% 75%);animation:mastery-wave 2.6s ease-in-out infinite,rainbow-shift 6s linear infinite;animation-delay:calc(var(--letter)*-.13s)}
@keyframes mastery-wave{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes rainbow-shift{to{filter:hue-rotate(360deg)}}#victory[data-perfect=true]>.eyebrow{color:#c5f9e7}#victory[data-perfect=true] #victoryReward{color:#e4fbd0}
#mastery{position:absolute;inset:0;z-index:6;background:#254d57;overflow:hidden;touch-action:pan-x pan-y}#masteryWorld{pointer-events:none}#masteryScroll{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth;touch-action:pan-x pan-y}.masteryMap{position:relative;width:100%;min-width:740px;min-height:2150px}.masteryHeading{position:absolute;top:96px;left:0;width:100%;text-align:center;color:#244a4b}.masteryHeading h2{font-size:48px;margin:8px 0 12px}.masteryHeading .eyebrow{color:#386464}.masteryHeading p{font:14px/1.6 system-ui;margin:0 auto;max-width:540px}.masteryTop{position:absolute;z-index:3;top:22px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.masteryTop button{pointer-events:auto;background:#1b444bed}.masteryTop span{font:14px system-ui;letter-spacing:2px;background:#183d48db;padding:12px;border:1px solid #a6d6d64d}#descendMastery{position:absolute;z-index:2;top:232px;left:50%;transform:translateX(-50%);background:#e0e9ce;color:#284e51;border:4px double #618b85;padding:17px 25px;box-shadow:0 8px 25px #16384066;font-size:16px;white-space:nowrap}#descendMastery span{margin-left:15px}.bubbleLinks{position:absolute;top:0;left:0;width:100%;height:2100px;pointer-events:none}.bubbleLinks path{fill:none;stroke:#aad7ce77;stroke-width:4;stroke-dasharray:1 19;stroke-linecap:round}.bubbleLinks path.lit{stroke:#e5efb3;filter:drop-shadow(0 0 5px #bff8c1)}.skillNode{position:absolute;transform:translateX(-50%);width:220px;min-height:174px;padding:18px 14px;display:flex;flex-direction:column;gap:10px;background:#183e4ce8;border:1px solid #a0d6d480;box-shadow:0 10px 40px #071f354d;text-align:center;transition:border-color .2s,box-shadow .2s}.skillNode b{font:23px Georgia;color:#f0eac6}.skillNode span{font:14px/1.4 system-ui}.skillNode small{font:12px/1.4 system-ui;color:#b5d8d1}.skillNode em{font:14px/1.4 system-ui;color:#e6d6a5}.skillNode:disabled{cursor:default!important;background:#173847dd;border-color:#8dafad44}.skillNode:disabled b{color:#bbcfc7}.skillNode[data-owned=true]{background:#284f50ed;border:2px solid #d9e9a5;box-shadow:0 0 35px #b7ebba26}.skillNode[data-owned=true] em{color:#ddf4b2}.skillNode:not(:disabled):hover{background:#306168;box-shadow:0 0 30px #a6e6d43b;border-color:#e6efba}.masteryFrontier{position:absolute;top:1990px;width:100%;text-align:center;color:#9abdbb}.masteryFrontier span{font:12px system-ui;letter-spacing:4px}.masteryFrontier p{font-style:italic}#masteryMessage{position:absolute;bottom:0;left:0;right:0;margin:0;padding:16px 24px;background:#102f43e8;text-align:center;font:14px/1.5 system-ui;color:#d3e6d5;pointer-events:none}#game[data-mastery=true]>:not(#mastery){visibility:hidden}
@media(max-width:700px){#skillButton{left:12px;top:calc(30% + 51px);font-size:12px;padding:10px}.masteryTop{left:12px;right:12px;top:14px}.masteryHeading{top:85px}.masteryHeading h2{font-size:40px}.skillNode{width:200px}.masteryHeading p{max-width:440px}#masteryMessage{font-size:12px;padding:12px}.masteryTop button{font-size:14px}}
@media(prefers-reduced-motion:reduce){.prismatic i{animation:none}#masteryScroll{scroll-behavior:auto}}
@media(max-width:700px){.masteryHeading p{max-width:calc(100vw - 40px)}.masteryHeading{width:calc(100vw - 20px);left:50%;transform:translateX(-50%)}}
.masteryHeading{color:#fff0ca;text-shadow:0 2px 6px #163c3f,0 0 18px #163c3f}.masteryHeading .eyebrow{color:#e3efcf}.masteryHeading p{color:#f0f1d6}.bubbleLinks circle{fill:#659da066;stroke:#bee2d28c;stroke-width:1}.bubbleLinks circle.bubble-lit{fill:#ecf5a7;stroke:#f7facc;filter:drop-shadow(0 0 4px #c9ffc2)}.bubbleLinks circle.bubble-bloom{animation:bubble-awaken .3s ease-out both}@keyframes bubble-awaken{0%{fill:#659da066;stroke:#bee2d28c;filter:none}70%{fill:#fffbd3;stroke:#ffffff;filter:drop-shadow(0 0 8px #e2ffbd)}100%{fill:#ecf5a7;stroke:#f7facc;filter:drop-shadow(0 0 4px #c9ffc2)}}@media(prefers-reduced-motion:reduce){.bubbleLinks circle.bubble-bloom{animation:none}}
.treeAudio{display:flex;gap:6px;margin-left:auto;margin-right:12px}.treeAudio button{font-size:13px}@media(max-width:700px){.treeAudio{gap:3px;margin-right:6px}.treeAudio button{font-size:11px;padding:8px 6px}.masteryTop>button{font-size:12px;padding:9px}.masteryTop span{padding:9px;font-size:12px}}
#currency,#inventoryButton,#skillButton{left:24px;width:166px;min-width:0;min-height:48px;padding:11px 14px;justify-content:space-between}#currency{top:calc(36% - 58px)}#inventoryButton{top:36%}#skillButton{top:calc(36% + 58px)}#currency span{font-size:10px}#currency b{font-size:17px}#bossButton[data-omen=true]{animation:threat-reveal 4.2s ease-out both}@keyframes threat-reveal{0%{opacity:0;clip-path:inset(0 50%);filter:blur(7px);transform:translate(-50%,-5px)}45%{opacity:.65;filter:blur(2px)}100%{opacity:1;clip-path:inset(0);filter:blur(0);transform:translate(-50%,0);box-shadow:0 0 28px #7d172b80}}.mythic{border:1px solid #b49ae0;background:#bd99ed20;padding:16px 8px;gap:14px}.mythic b{color:#775291}.mythic small{color:#736281}.mythic canvas{flex:0 0 96px;width:96px;height:52px}#clickWarning{position:absolute;z-index:10;top:175px;left:50%;transform:translateX(-50%);width:min(540px,92vw);padding:14px 18px;background:#182b36ed;border:1px solid #b79877;color:#f4dfbc;font:14px/1.5 system-ui;text-align:center;pointer-events:none}#clickWarning strong{color:#ff6868;font-weight:800}#clickWarning small{display:block;color:#bfcecc;margin-top:5px;font-size:11px}#game[data-mastery=true]>#clickWarning{visibility:visible}@media(max-width:700px){#currency,#inventoryButton,#skillButton{left:12px;width:138px;min-height:42px;padding:9px 11px}#currency{top:calc(29% - 54px)}#inventoryButton{top:29%}#skillButton{top:calc(29% + 50px)}#clickWarning{top:175px;font-size:12px}}@media(prefers-reduced-motion:reduce){#bossButton[data-omen=true]{animation:none}}
#currency,#inventoryButton,#skillButton{height:58px}#currency{top:calc(36% - 66px)}#skillButton{top:calc(36% + 66px)}@media(max-width:700px){#currency,#inventoryButton,#skillButton{height:50px}#currency{top:max(185px,calc(29% - 54px))}#inventoryButton{top:max(243px,calc(29% + 4px))}#skillButton{top:max(301px,calc(29% + 62px))}}

#currency{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}#currency span{margin:0}#currency #coinBalance{display:block;white-space:nowrap;font:600 16px/1.15 system-ui;letter-spacing:0}.skillNode[data-energizing=true]{background:#173847dd;border:1px solid #8dafad44;box-shadow:none}.skillNode[data-energizing=true] em{color:#a6c5c1}.placeholderNode{opacity:.65}.bubbleLinks circle{transform-box:fill-box;transform-origin:center;animation:bubble-drift 4.8s ease-in-out infinite;animation-delay:var(--drift-delay,0s);fill:#63979a28;stroke:#c4f0e1b0;stroke-width:1.2}.bubbleLinks circle.bubble-bloom{animation:bubble-awaken .3s ease-out both,bubble-drift 4.8s ease-in-out infinite}.bubbleLinks circle.bubble-lit{fill:#e7f3af99;stroke:#f8ffe0}@keyframes bubble-drift{0%,100%{transform:translate(-1.5px,0)}50%{transform:translate(1.5px,-1px)}}#victory{background:linear-gradient(transparent 57%,#102f3dd9)}@media(prefers-reduced-motion:reduce){.bubbleLinks circle,.bubbleLinks circle.bubble-bloom{animation:none}}

#coinBalance{cursor:help}#coinExact{display:none;position:absolute;bottom:calc(100% + 9px);left:0;white-space:nowrap;padding:10px 13px;background:#142e33f5;border:1px solid #b8b68a;border-radius:4px;color:#ffebbb;font:14px/1.3 system-ui;z-index:5;box-shadow:0 5px 18px #10262a60}#currency:has(#coinBalance:hover) #coinExact,#currency:has(#coinBalance:focus-visible) #coinExact{display:block}#menuButton{position:absolute;left:24px;bottom:94px;font-size:12px;z-index:2}#mainMenu{position:absolute;inset:0;z-index:20;background:#183c42;overflow:hidden}#menuWorld{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.menuShade{position:absolute;inset:0;background:linear-gradient(90deg,#102c36b0,transparent 65%),linear-gradient(0deg,#092d3860,transparent 40%)}.menuContent{position:absolute;left:12%;top:22%;color:#fff1c8;max-width:520px}.menuContent h1{font:clamp(44px,6vw,84px)/1 Georgia;letter-spacing:5px;margin:18px 0}.menuContent>.eyebrow{color:#ecd6a0;letter-spacing:4px}.menuContent p{font:italic 17px Georgia;color:#e1dab5;margin:0 0 28px}.menuBoard{width:300px;max-width:80vw;padding:18px;border:4px double #aeae7399;background:#1a3535df;box-shadow:0 10px 35px #102f3855}.menuBoard button{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:0;font:700 19px/1.4 monospace;color:#f7e7b5;padding:12px}.menuBoard button:hover,.menuBoard button:focus-visible{background:#8c9e6538;color:#fff5ca;outline:1px solid #e5d491}.menuBoard button::before{content:'›';display:inline-block;width:20px;color:#f3cf82}.menuContent>small{display:block;font:11px system-ui;color:#d7d8b6;margin-top:18px}.menuSignature{position:absolute;right:28px;bottom:26px;font:10px system-ui;letter-spacing:3px;color:#e5dcb2}#game[data-menu=true]>:not(#mainMenu){visibility:hidden}#menuSettings{border-top:1px solid #ddc68b55;margin-top:8px}#menuSettings button{font-size:14px;padding:8px 12px}@media(max-width:700px){.menuContent{left:8%;top:17%}.menuContent p{max-width:260px;line-height:1.5}.menuSignature{font-size:8px;right:16px;letter-spacing:1.5px}#menuButton{left:12px;bottom:90px}}

.menuContent{left:8%}.menuBoard{width:350px;max-width:86vw}.menuBoard button{white-space:nowrap;padding:12px 8px;font-size:clamp(14px,1.6vw,19px);text-indent:0}.menuBoard button::before{display:none}.menuContent>small{max-width:85vw}.bulkActions{display:flex;gap:10px;margin:18px 0;flex-wrap:wrap}.bulkActions button{flex:1;background:#34594c;color:#fff1c8}.bulkPreview{font:14px/1.6 system-ui;padding:14px;background:#dce6ce}.bulkPreview ul{padding-left:20px;max-height:180px;overflow:auto}@media(max-width:700px){.menuBoard{width:300px;padding:14px}.menuBoard button{font-size:16px}}
.saleControls select{padding:12px;font:16px system-ui;border:1px solid #9eaf98;background:#fffaf0;color:#314b42;border-radius:4px;width:100%}

#merchantButton{position:absolute;left:28px;top:370px;width:176px;z-index:5;color:#eed9aa;background:#173f41e8;border:1px solid #8fa29b;padding:12px;font-size:12px}
.orderLetter{display:flex;flex-direction:column;gap:9px;text-align:left;width:100%;padding:16px;margin:12px 0;background:#244546;border:1px solid #779183}.orderLetter span{font-size:13px;line-height:1.6}.orderLetter strong,.orderReward{color:#f1d394}.orderNeeds{padding:14px;background:#132f34;border-left:3px solid #c9b57e}.orderNeeds div{display:flex;justify-content:space-between;gap:15px;margin:9px 0}.orderNeeds b{white-space:nowrap;color:#c0d7a6}#gullDrop{display:flex;align-items:center;flex-direction:column;gap:8px;padding:24px;border:2px dashed #bbcead;border-radius:12px;background:#234d50;cursor:pointer}#gullDrop span{font-size:32px}#gullDrop small{font-size:12px}.orderCards{display:grid;gap:10px}.orderCards button{text-align:left;padding:14px;cursor:grab;background:#294849;border:1px solid #97aba0}.orderCards small{display:block;margin-top:7px;color:#b9c7b7}.orderActions{display:flex;flex-wrap:wrap;gap:10px}.orderActions button{padding:12px}#sendOrder{background:#57765b;color:#fff2ca}button:disabled{opacity:.4;cursor:default}#orderStatus{min-height:24px;color:#dfc894}@media(max-width:700px){#merchantButton{left:14px;top:350px;width:150px}}

#merchantButton{left:24px;top:calc(36% + 132px);width:166px;height:58px}#game:has(#victory:not([hidden])) #merchantButton{visibility:hidden}@media(max-width:700px){#merchantButton{left:12px;top:max(359px,calc(29% + 120px));width:138px;height:50px}}
.orderNeeds,.orderCards button,.orderLetter{color:#f2e4c8}.orderCards small{color:#d1ddc9}

#gullDrop{color:#f1e5c9;padding:12px}#gullDrop svg{height:42px}#merchantButton{z-index:2}.panel:has(#gullDrop){width:min(680px,94vw);padding:24px 30px}.panel:has(#gullDrop) p{font-size:13px;line-height:1.5;margin:10px 0}.panel:has(#gullDrop) h3{margin:16px 0 8px}.panel:has(#gullDrop) h2{margin-bottom:12px}

.orderCards button{touch-action:none;user-select:none}

/* Shared rarity tokens also support future item cards. Text keeps color-independent meaning. */
.rarity-common{--rarity:#bfc3c7}.rarity-uncommon{--rarity:#80df91}.rarity-rare{--rarity:#80baff}.rarity-epic{--rarity:#cf9aff}.rarity-legendary{--rarity:#ffc366}.rarity-mythic{--rarity:#ff8686}.rarity-divine{--rarity:#fff}.rarity-secret{--rarity:#000}
.rarityBadge{display:inline-block;color:var(--rarity)!important;background:#172c34;border:1px solid var(--rarity);border-radius:3px;padding:2px 6px;font:600 11px/1.4 system-ui;letter-spacing:.04em;vertical-align:middle;white-space:nowrap;text-transform:uppercase}
.rarityBadge.rarity-divine{background:linear-gradient(100deg,#ffb2b2,#ffdf88,#a8edaa,#9ed5ff,#d0b1ff,#ffb2b2);color:#17232c!important;border-color:#f6eacb}.rarityBadge.rarity-secret{background:#ede7d7;color:#000!important;border-color:#000}.mythic{border-color:#ca5151;background:#c5535315}.mythic b{color:#a52835}.mythic small{color:#765450}

.skillNode[data-owned=true]:not([data-energizing=true]){opacity:1!important;background:linear-gradient(145deg,#416967,#244f53);border:2px solid #e8fac0;box-shadow:0 0 24px #d0f5b766,inset 0 0 22px #dafca51c}.skillNode[data-owned=true]:not([data-energizing=true]) b{color:#ffffdc}.skillNode[data-owned=true]:not([data-energizing=true]) em{color:#efffba;font-weight:bold}.skillNode[data-owned=true]:not([data-energizing=true]) small,.skillNode[data-owned=true]:not([data-energizing=true]) span{color:#e2f3d7}
#equipmentButton{position:absolute;left:24px;top:calc(36% + 66px);width:166px;height:58px;z-index:2;background:#234546e8;border-color:#aab58b;color:#ece1be}#skillButton{top:calc(36% + 132px)}#merchantButton{top:calc(36% + 198px)}#inventoryButton{font-size:12px;padding:9px 10px;gap:5px}#game:has(#victory:not([hidden])) #equipmentButton{visibility:hidden}
.panel:has(.equipmentScreen){width:min(940px,94vw);background:#e9e5d2}.equipmentTabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.equipmentTabs button{background:#31534e}.equipmentTabs button[aria-pressed=true]{background:#6b7450;border-color:#b2b980}.loadoutSummary{padding:14px;background:#d8dfcb;border:1px solid #a1b497}.loadoutSummary summary{cursor:pointer;font:600 14px/1.6 system-ui}.loadoutSummary p{font-size:12px}.gearCard{padding:20px;margin:16px 0;border:1px solid #a9b6a0;background:#f8f1db}.gearCard[data-equipped=true]{border:2px solid #547953;box-shadow:inset 4px 0 #6c9567}.gearHeading{display:flex;gap:18px;align-items:center}.gearHeading h3{margin:7px 0!important}.gearIcon{width:56px;height:56px;display:grid;place-items:center;background:#233f43;color:var(--gear-color);font:48px Georgia;flex-shrink:0;border:2px solid #84957b}.gearCard p{font-size:13px;margin:10px 0}.gearStats{display:grid;grid-template-columns:1fr 1fr;gap:5px 24px;font:12px/1.6 system-ui;margin:14px 0}.gearStats>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #75886c33;padding:3px 0}.gearStats dd{margin:0;font-weight:700;white-space:nowrap}.gearStats dd small{font-size:10px;font-weight:400}.statDown{color:#93483d}.statUp{color:#326642}.gearActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gearActions button{background:#375b4a}.gearActions span{font:12px system-ui}.gearPerk{padding:10px;background:#dddcb6;color:#424f38!important}.gearMessage{min-height:25px}
@media(max-width:700px){#equipmentButton{left:12px;width:138px;height:50px;top:max(301px,calc(29% + 62px))}#skillButton{top:max(359px,calc(29% + 120px))}#merchantButton{top:max(417px,calc(29% + 178px))}.gearStats{grid-template-columns:1fr}.gearCard{padding:14px}}

.equipmentTabs button,.gearActions button{color:#fbefd3}.gearIcon{overflow:hidden}.equipmentTabs{position:sticky;top:-32px;padding:12px 0;background:#e9e5d2;z-index:1}

/* Guided first steps and focused testing tools. */
#tutorial{position:fixed;inset:0;z-index:60;background:#0d23294d;touch-action:none}#tourSpot{position:fixed;border:2px solid #f8de97;border-radius:8px;box-shadow:0 0 0 200vmax #071b2466;pointer-events:none}.tourCard{position:absolute;right:5vw;top:28%;width:min(420px,90vw);padding:24px;background:#183d44;border:1px solid #b2be93;border-radius:10px;box-shadow:0 15px 65px #071f32;color:#f9edce}.tourCard small{font:11px system-ui;letter-spacing:2px;color:#d8cb91}.tourCard h2{font:27px Georgia}.tourCard p{font:15px/1.7 system-ui}.tourActions{display:flex;flex-wrap:wrap;gap:8px}#tourNext{background:#597a64}#tourSkip{font-size:12px;background:transparent}#habitatHint{position:fixed;z-index:4;pointer-events:none;width:270px;padding:10px 12px;border:1px solid #a2bca5;background:#15383dec;color:#f4e7c2;font:12px/1.5 system-ui;border-radius:6px}#fishDragGhost{position:fixed;z-index:80;pointer-events:none;width:180px;height:90px;image-rendering:pixelated;filter:drop-shadow(0 5px 6px #102b3877)}.orderCards canvas{display:block;max-width:150px;image-rendering:pixelated}.orderCards button{touch-action:none}.styleHint:focus-visible,.styleHint:hover{background:#d4ddc9;outline:1px solid #71947c}.adminGroup{margin:22px 0;padding:16px;border:1px solid #9fac91;border-radius:6px;background:#e2e3cc}.adminGroup label{display:block;font:13px system-ui;margin:14px 0 6px}.adminGroup input,.adminGroup select,#adminSearch{display:block;width:100%;padding:10px;background:#fff9e7;color:#234844;border:1px solid #879d8b;border-radius:4px;font:14px system-ui;box-sizing:border-box}.adminGroup button{margin:8px 6px 0 0;background:#345c54;font-size:12px}.adminGroup p{font-size:13px;line-height:1.6}#adminMessage{position:sticky;top:0;background:#ecedd5;z-index:1;padding:12px;border-left:3px solid #779574;min-height:18px}[data-test=resetProgress]{background:#8a373b}.adminGroup[hidden]{display:none}#tutorial[hidden],#fishDragGhost[hidden],#habitatHint[hidden]{display:none}@media(max-width:700px){.tourCard{top:auto;bottom:7%;right:5vw;padding:18px}.tourCard p{font-size:13px}}
.orderCards canvas{position:static;inset:auto;width:150px;height:60px;pointer-events:none}

#baitCounter{position:fixed;transform:translateY(-50%);z-index:2;padding:9px 11px;background:#173d43e8;border:1px solid #abc4ad80;border-radius:5px;color:#fff4d7;font:12px system-ui;pointer-events:none;max-width:180px}#weatherLabel{color:#e7efce}.mutationTag{display:inline-block;color:var(--mutation);background:#16323c;padding:3px 7px;margin:3px 0;border:1px solid var(--mutation);border-radius:3px;font:12px system-ui}.mutationEntry{padding:12px;margin:10px 0;background:#d9dfcc;border:1px solid #a2b39e}.mutationEntry p{font-size:13px}.mutationEntry small{color:#365348}.panel:has(.adminGroup){background:#183941;color:#fff}.panel:has(.adminGroup) h2,.panel:has(.adminGroup) h3,.panel:has(.adminGroup) p,.panel:has(.adminGroup) label,.panel:has(.adminGroup) .eyebrow,.panel:has(.adminGroup) small,.panel:has(.adminGroup) .close{color:#fff}.adminGroup{background:#234b53;border-color:#779b9c;color:#fff}.adminGroup input,.adminGroup select,#adminSearch{background:#153740;color:#fff;border-color:#94b6b5;color-scheme:dark}.adminGroup input::placeholder,#adminSearch::placeholder{color:#c8d9da}.adminGroup button{color:#fff;background:#416b70}.adminGroup button:disabled{color:#d0dedf;opacity:.65}#adminMessage{color:#fff;background:#244d57}.orderCards small,#gullDrop small{color:#e1efdf}.orderNeeds,.orderReward{color:#f5ead0}.gearActions button,.equipmentTabs button{color:#fff4de}.styleHint:focus-visible{outline:2px solid #718756}@media(max-width:700px){#baitCounter{font-size:10px;padding:7px;max-width:120px}}
