:root{--water:#0f2a35;--foam:#ece4d0;--ink:#0f2a35;--edge:#8fb3bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--water);height:100%;color:var(--foam);overscroll-behavior:none;margin:0;font-family:system-ui,sans-serif}main{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));flex-direction:column;justify-content:space-between;display:flex}h1{margin:0 0 8px;font-size:2.2rem}.species{flex-wrap:wrap;gap:8px;margin:16px 0;padding:0;list-style:none;display:flex}.species li{border:2px solid var(--edge);border-radius:999px;padding:6px 14px}.hint{opacity:.8;margin:8px 0;font-size:.9rem}footer{flex-direction:column;align-items:flex-start;gap:12px;margin-top:auto;display:flex}.build{opacity:.85;font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.feel-open,.btn{border:2px solid var(--foam);min-height:48px;color:var(--foam);font:inherit;background:0 0;border-radius:12px;justify-content:center;align-items:center;padding:0 20px;text-decoration:none;display:inline-flex}.btn.primary{background:var(--foam);color:var(--ink)}.btn:disabled,.btn.disabled{opacity:.4;border-style:dashed}.sheet{background:var(--water);padding:max(24px, env(safe-area-inset-top)) 20px max(20px, env(safe-area-inset-bottom));flex-direction:column;gap:8px;display:flex;position:fixed;inset:0;overflow-y:auto}.ratings{gap:8px;margin:8px 0 16px;display:flex}.rate{border:2px solid var(--edge);min-height:56px;color:var(--foam);font:inherit;background:0 0;border-radius:12px;flex:1;font-size:1.3rem}.rate.on{background:var(--foam);color:var(--ink);border-color:var(--foam);outline:3px solid var(--foam);outline-offset:3px}textarea{border:2px solid var(--edge);width:100%;color:var(--foam);font:inherit;background:#0b1f28;border-radius:12px;padding:10px}textarea.code{word-break:break-all;font-family:ui-monospace,monospace;font-size:.75rem}.actions{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.check-result{border-radius:12px;padding:12px 16px;font-size:1.2rem}.check-result[data-pass=true]{border:2px solid var(--foam)}.check-result[data-pass=false]{border:4px dashed var(--foam);font-weight:700}canvas.fight{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;display:block;position:fixed;inset:0}.how{margin:16px 0 24px;padding-left:20px;line-height:1.5}.start{width:100%;min-height:64px;font-size:1.25rem}.result h2{margin:0 0 8px;font-size:2rem}.result h2.landed{border-bottom:4px solid var(--foam)}.result h2.lost{border-bottom:4px dashed var(--foam)}.result .fish{font-size:1.3rem}.mentor{top:calc(64px + env(safe-area-inset-top));color:var(--foam);pointer-events:none;align-items:center;gap:12px;margin:0;font-size:1.15rem;line-height:1.35;display:flex;position:fixed;left:16px;right:16px}.mentor p{flex:1;margin:0}.mentor-shape{flex:none;width:52px;height:52px}.mentor:not(:empty){border:2px solid var(--foam);background:#0000008c;border-radius:12px;padding:10px 14px}.assist{border:0;margin:0 0 20px;padding:0}.assist legend{margin-bottom:8px;font-weight:700}.assist .options{gap:8px;display:flex}.assist .btn{flex:1}.assist .btn[aria-pressed=true]{border-style:solid;border-width:4px;font-weight:700}.assist .btn[aria-pressed=true]:before{content:"✓ "}.assist .hint{margin:8px 0 0}.offer p{margin-top:0}.offer{border:2px dashed var(--foam);border-radius:12px;margin:16px 0;padding:12px}canvas.world{z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}#app{z-index:1;position:relative}body.has-world main{background:linear-gradient(#0f2a35b8,#0f2a3566 38%,#0f2a3514 55%,#0f2a358c 78%,#0f2a35d1)}.world-stats{top:max(8px, env(safe-area-inset-top));z-index:30;color:#f3ece2;background:#1416188c;border-radius:6px;padding:6px 8px;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;position:fixed;left:8px}.world-stats .tiers{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.world-stats button{font:inherit;color:#1d1f21;background:#f1e3cf;border:0;border-radius:4px;padding:6px 9px}.world-stats button[aria-pressed=true]{color:#f1e3cf;background:0 0;box-shadow:inset 0 0 0 1.5px #f1e3cf}.result{flex-direction:column;flex:1;display:flex}.result-card{margin-top:auto;padding-top:16px}.result .tip{border-left:4px solid var(--foam);padding-left:10px;font-weight:700}.result .swipe-hint{text-align:center;margin:12px 0 0}.result .swipe-hint:before{content:"⌃ "}.settings-open{width:100%;margin-top:12px}.settings h2{margin:0 0 16px;font-size:2rem}.pause{z-index:5;text-align:center;background:#0f2a35d1;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.pause h2{margin:0;font-size:2rem}.pause .btn{min-width:60%;min-height:56px}.result .clean{border:2px solid var(--foam);border-radius:10px;padding:6px 10px;font-weight:700;display:inline-block}.result .size-word{margin:2px 0 0;font-size:1.3rem;font-weight:700}.result .best{margin:4px 0 0;font-weight:700}.result[data-outcome=landed]{top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;bottom:calc(30px + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:fixed}.result[data-outcome=landed] .result-card{flex-direction:column;flex:1;min-height:0;margin-top:0;padding-top:6px;font-size:.92rem;display:flex}.result[data-outcome=landed] .result-card>.actions{margin-top:auto}.result[data-outcome=landed] .result-card p{margin:3px 0;line-height:1.3}.result[data-outcome=landed] .learned p{font-size:.88rem}.result[data-outcome=landed] .swipe-hint{margin-top:4px}.catch-card{pointer-events:none;text-align:center;border:1.5px solid #ffeccdb3;border-radius:20px;flex:none;overflow:hidden}.catch-window{height:clamp(130px,25vh,250px);position:relative;overflow:hidden}.catch-card[data-picture=photo] .catch-window{background:radial-gradient(at 50% 55%,#fff6dc 0%,#ffd98f 34%,#e9a85a 62%,#b86f3c 100%)}.catch-glow{background:repeating-conic-gradient(#ffffff57 0deg 7deg,#fff0 7deg 22deg);animation:40s linear infinite catch-rays;position:absolute;inset:-60%;-webkit-mask-image:radial-gradient(circle,#000 18%,#0000 62%);mask-image:radial-gradient(circle,#000 18%,#0000 62%)}.catch-photo{object-fit:contain;filter:drop-shadow(0 6px 10px #50280059);width:90%;height:84%;animation:.7s cubic-bezier(.2,1.4,.4,1) both catch-in;position:absolute;inset:8% 5%}@keyframes catch-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes catch-rays{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.catch-glow,.catch-photo{animation:none}}.catch-info{background:#0a1620c7;padding:6px 12px 10px}.catch-info h2{letter-spacing:.12em;text-transform:uppercase;margin:0 0 2px;font-size:.85rem;display:inline-block}.catch-info .fish{margin:0;font-size:1.4rem;font-weight:700}.almanac h2{margin:0 0 4px;font-size:2rem}.almanac .pages{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.almanac .page{border:2px solid var(--edge);border-radius:12px;padding:10px 14px}.almanac .page.blank{opacity:.75;border-style:dashed}.almanac .page h3{margin:0;font-size:1.25rem}.almanac .page p{margin:4px 0 0}.almanac .sci{opacity:.8;font-style:italic}.almanac .counter{font-weight:600}.summary h2{margin:0 0 4px;font-size:2rem}.summary .catches{margin:8px 0;padding-left:1.2em}.summary .best,.summary .new{font-weight:600}.conditions-box .conditions{color:inherit;font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.conditions-panel{border:2px solid var(--edge);border-radius:12px;margin:8px 0;padding:8px 14px}.conditions-panel h3{margin:0 0 4px}.conditions-panel ul{margin:0;padding-left:1em}.catch-info .size-word{margin:0;font-size:1.1rem}.catch-info .best,.catch-info .hint{margin:2px 0 0}.result[data-outcome=landed]:has(.offer) .catch-window{height:clamp(100px,17vh,200px)}:is(.result[data-outcome=landed]:has(.offer) .learned,.result[data-outcome=landed]:has(.offer) .swipe-hint){display:none}.result[data-outcome=landed] .offer{margin:6px 0;padding:6px 10px}.result[data-outcome=landed] .offer .actions{margin:4px 0 0}.result[data-outcome=landed] .result-card>.actions{flex-wrap:nowrap;gap:6px}.result[data-outcome=landed] .result-card>.actions>*{flex:1 1 0;min-width:0;padding-left:6px;padding-right:6px}.result[data-outcome=landed] .offer p{margin-bottom:0;font-size:.86rem}.spot-choice{gap:8px;margin:6px 0;display:flex}.spot-choice .btn{flex:1}.spot-choice .btn[aria-pressed=true]{border-width:3px;font-weight:700}.harbor-map{z-index:30;padding:8px 8px calc(14px + env(safe-area-inset-bottom));color:#33261a;background:radial-gradient(at 50% 40%,#f1e5c8,#dcc9a2 78%,#c9b287);flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;font-family:Iowan Old Style,Palatino Linotype,Palatino,Noto Serif,Georgia,serif;display:flex;position:fixed;inset:0}.map-defs{position:absolute}.map-plate{aspect-ratio:768/1376;flex:auto;max-width:100%;min-height:0;position:relative}.map-plate img{border-radius:4px;width:100%;height:100%;display:block;box-shadow:0 2px 10px #46301459}.map-mark{color:#33261a;min-width:48px;min-height:48px;font:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:1px;padding:0;display:flex;position:absolute;transform:translate(-50%,-18px)}.map-shape{background:radial-gradient(circle at 46% 44%,#faf1dbf5,#f3e6c8e6 55%,#f3e6c800 74%);border-radius:47% 53% 50% 50%/52% 48%;place-items:center;width:40px;height:40px;display:grid}.map-mark.spot .map-shape{box-shadow:inset 0 0 0 1.5px #33261abf}.map-mark.home .map-shape{box-shadow:inset 0 0 0 1.5px #33261abf,inset 0 0 0 4px #faf1dbe6,inset 0 0 0 5px #33261a80}.map-mark.locked{cursor:default}.map-mark.locked .map-shape{outline-offset:-3px;color:#33261abf;outline:1.5px dashed #33261ab3}.map-label{white-space:nowrap;background:linear-gradient(172deg,#faf0d6,#ecdcb4);border:1px solid #543c1e8c;border-radius:3px 7px 4px 8px/7px 3px 8px 4px;flex-direction:column;align-items:center;padding:2px 9px 3px;font-size:15px;font-weight:700;line-height:1.25;display:flex;transform:rotate(-1.6deg);box-shadow:0 2px 5px #3c280f52}.map-mark:nth-of-type(2n) .map-label{transform:rotate(1.3deg)}.map-label small{font-size:13px;font-style:italic;font-weight:400}.map-mark.locked .map-label{color:#33261acc;background:linear-gradient(172deg,#efe4c8,#e0d0aa)}.map-mark:active .map-label,.map-close:active{transform:translateY(1px)}.map-close{color:#33261a;min-width:132px;min-height:48px;font:inherit;letter-spacing:.02em;background:linear-gradient(172deg,#faf0d6,#e8d6aa);border:1.5px solid #543c1eb3;border-radius:5px 10px 6px 11px/10px 5px 11px 6px;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 26px;font-size:1.05rem;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 3px #faf1dbe6,inset 0 0 0 4px #543c1e59,0 3px 8px #3c280f59}body.has-world main.home2-main{background:0 0;padding:0}.home2{pointer-events:none;flex-direction:column;justify-content:space-between;font-family:Iowan Old Style,Palatino Linotype,Palatino,Noto Serif,Georgia,serif;display:flex;position:fixed;inset:0}.home2>*{pointer-events:auto}.home2-top{padding:max(22px, env(safe-area-inset-top)) 20px 44px;background:linear-gradient(#161e2480,#161e243d 55%,#161e2400)}.home2-top h1{letter-spacing:.01em;color:#fbf1dc;text-shadow:0 1px 2px #1e160e8c,0 2px 18px #1e160e73;margin:0;font-size:2.5rem;font-weight:600;line-height:1.05}.home2 .conditions-box .conditions{color:#fbf1dc;text-shadow:0 1px 6px #1e160eb3;border-bottom:1px solid #fbf1dc8c;min-height:32px;margin-top:6px;font-size:.98rem;font-style:italic;text-decoration:none}.home2 .conditions-panel{background:#141e22c7;border:1px solid #fbf1dc66;margin:10px 0 0;box-shadow:0 8px 24px #0000004d}.home2-dock{padding:56px 16px calc(34px + env(safe-area-inset-bottom));background:linear-gradient(#10181c00,#10181c80 34%,#10181ccc);flex-direction:column;gap:10px;display:flex}.home2 .spot-choice{background:#121c2099;border-radius:999px;align-self:center;gap:0;margin:0;padding:3px;box-shadow:inset 0 0 0 1px #fbf1dc47}.spot-tab{color:#f1e6cf;min-height:40px;font:inherit;background:0 0;border:0;border-radius:999px;padding:0 18px;font-size:.98rem}.spot-tab[aria-pressed=true]{color:#2a2118;background:linear-gradient(#f6ead0,#e3d0a6);font-weight:700;box-shadow:0 1px 4px #00000059}.spot-tab[aria-pressed=true]:before{content:"✓ "}.home2 .btn.primary.start{letter-spacing:.01em;color:#2a2118;background:linear-gradient(#fbf0d6,#e9d6ab 60%,#d9c08d);border:0;border-radius:16px;min-height:62px;font-size:1.35rem;font-weight:700;box-shadow:inset 0 1px #ffffffbf,inset 0 -2px #78582847,0 8px 22px #0006}.home2 .btn.primary.start:disabled{opacity:.55}.dock-row{gap:8px;display:flex}.dock-btn{color:#f1e6cf;min-width:0;min-height:54px;font:inherit;background:#121c2099;border:0;border-radius:14px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;padding:6px 4px 5px;font-size:.82rem;display:flex;box-shadow:inset 0 0 0 1px #fbf1dc47}.dock-btn:active,.spot-tab:active,.home2 .btn.primary.start:active{transform:translateY(1px)}.home2-main footer{left:0;right:0;bottom:calc(8px + env(safe-area-inset-bottom));pointer-events:none;align-items:center;position:fixed}.home2-main .build{opacity:.7;text-shadow:0 1px 4px #0009;font-size:.68rem}
