@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700&display=swap";:root{--bg-deep:#0b1d2e;--bg-glass:#0c1c2cbd;--bg-glass-strong:#081420eb;--accent:#ffd166;--accent-warm:#f96;--teal:#4ecdc4;--good:#5cb85c;--bad:#ef476f;--border:#ffffff1f;--wood-base:#5c3a21;--wood-dark:#3a2211;--wood-border:#241409;--wood-highlight:#ffffff1a}*{box-sizing:border-box}html,body{color:#f5f5f5;-webkit-user-select:none;user-select:none;background:#0b1d2e;margin:0;padding:0;font-family:Outfit,system-ui,sans-serif;font-weight:400;overflow:hidden}#app{width:100vw;height:100vh;position:fixed;inset:0}canvas{image-rendering:auto;display:block}.ui-root,.ui-overlay{pointer-events:none;z-index:10;position:fixed;inset:0}.ui-panel{pointer-events:auto;background:var(--wood-base);background-image:repeating-linear-gradient(45deg, #0000000d 0px, #0000000d 2px, transparent 2px, transparent 4px), linear-gradient(180deg, var(--wood-base) 0%, var(--wood-dark) 100%);border:3px solid var(--wood-border);box-shadow:inset 0 2px 2px var(--wood-highlight), inset 0 -2px 4px #0006, 0 8px 40px #0009;border-radius:12px;padding:18px 22px}.btn{pointer-events:auto;color:#2a1b00;letter-spacing:.5px;cursor:pointer;text-shadow:0 1px 1px #fff6;background:linear-gradient(#ffd166,#f96);border:2px solid #b37336;border-radius:8px;padding:10px 18px;font-family:inherit;font-weight:700;transition:transform .1s,filter .1s,box-shadow .1s;display:inline-block;box-shadow:inset 0 2px #fff6,0 4px #b37336}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(4px);box-shadow:inset 0 2px #fff6,0 0 #b37336}.btn:disabled{color:#aaa;cursor:not-allowed;filter:none;background:#555}.btn-secondary{color:#f5f5f5;border:1px solid var(--border);background:#ffffff14}.btn-secondary:hover{background:#ffffff24}.btn-ghost{color:#f5f5f5;border:1px solid var(--border);background:0 0}input[type=text]{pointer-events:auto;border:1px solid var(--border);color:#f5f5f5;background:#ffffff0f;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:15px}input[type=text]:focus{border-color:var(--accent)}.menu-bg{pointer-events:auto;background:radial-gradient(80% 60% at 30% 30%,#4ecdc42e,#0000 60%),radial-gradient(60% 50% at 70% 75%,#ffd16629,#0000 60%),linear-gradient(#0b1d2e 0%,#051221 100%);position:absolute;inset:0}.menu-card{pointer-events:auto;width:420px;max-width:92vw;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.menu-card h1{letter-spacing:4px;background:linear-gradient(90deg,#ffd166,#f96);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 4px;font-size:34px;font-weight:700}.menu-card .subtitle{letter-spacing:2px;opacity:.6;text-transform:uppercase;margin:0 0 22px;font-size:13px}.field{margin-bottom:14px}.field label{letter-spacing:1.2px;text-transform:uppercase;opacity:.7;margin-bottom:6px;font-size:11px;display:block}.row{gap:10px;display:flex}.row .btn{flex:1}.divider{text-align:center;letter-spacing:2px;opacity:.5;text-transform:uppercase;margin:14px 0 10px;font-size:11px}.menu-error{color:var(--bad);min-height:16px;margin-top:10px;font-size:13px}.share-row{align-items:center;gap:8px;margin-top:14px;display:flex}.share-row input{flex:1;font-size:13px}.hud-top-left{flex-direction:column;gap:10px;display:flex;position:absolute;top:20px;left:20px}.hud-top-center{flex-direction:column;gap:10px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%)}.hud-timer-card{background:var(--bg-glass-strong);border-radius:var(--radius);border:1px solid var(--border-light);color:var(--text);text-shadow:1px 2px 3px #000c;justify-content:center;align-items:center;padding:10px 20px;font-size:24px;font-weight:800;display:flex;box-shadow:0 4px 15px #0006,inset 0 2px 5px #ffffff1a}.hud-card{background:var(--wood-base);background-image:repeating-linear-gradient(45deg, #0000000d 0px, #0000000d 2px, transparent 2px, transparent 4px), linear-gradient(180deg, var(--wood-base) 0%, var(--wood-dark) 100%);border:3px solid var(--wood-border);min-width:220px;box-shadow:inset 0 2px 2px var(--wood-highlight), inset 0 -2px 4px #0006, 0 4px 20px #00000080;border-radius:12px;padding:10px 14px}.hud-money{align-items:baseline;gap:8px;display:flex}.hud-money .amount{color:var(--accent);font-size:28px;font-weight:700}.hud-money .goal{opacity:.6;font-size:13px}.hud-progress{background:#ffffff1a;border-radius:4px;height:5px;margin-top:6px;overflow:hidden}.hud-progress>div{background:linear-gradient(90deg,#ffd166,#f96);height:100%;transition:width .3s}.hud-state{text-transform:uppercase;letter-spacing:2px;opacity:.85;margin-top:4px;font-size:11px}.hud-inventory{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.hud-fish-chip{background:#0006;border:1px solid #0009;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:inset 0 1px #ffffff0d}.fish-icon{object-fit:contain;filter:drop-shadow(0 2px 2px #0009);width:22px;height:22px}.hud-top-right{pointer-events:none;width:260px;position:fixed;top:16px;right:16px}.hud-ranking h3{letter-spacing:2px;text-transform:uppercase;opacity:.7;margin:0 0 8px;font-size:12px}.hud-ranking ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.hud-ranking li{align-items:center;gap:8px;font-size:14px;display:flex}.hud-ranking .pname{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.hud-ranking .pmoney{color:var(--accent);font-weight:600}.hud-ranking .swatch{border-radius:50%;flex-shrink:0;width:10px;height:10px}.hud-ranking li.me{background:#ffd16614;border-radius:6px;padding:2px 6px}.hud-bottom-center{pointer-events:none;text-align:center;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.hud-controls{letter-spacing:1.5px;opacity:.7;background:#00000059;border-radius:999px;padding:6px 14px;font-size:12px;display:inline-block}.hud-prompt{background:var(--wood-base);background-image:linear-gradient(180deg, var(--wood-base) 0%, var(--wood-dark) 100%);border:3px solid var(--wood-border);box-shadow:inset 0 2px 2px var(--wood-highlight), 0 4px 15px #00000080;letter-spacing:1px;pointer-events:none;border-radius:999px;padding:10px 18px;font-size:14px;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.hud-loot-popup{pointer-events:none;background:var(--bg-glass-strong);color:var(--good);text-shadow:0 1px 2px #000c;z-index:1000;border:2px solid #fff3;border-radius:20px;padding:6px 14px;font-size:16px;font-weight:700;animation:2.5s cubic-bezier(.2,.8,.2,1) forwards lootFloatUp;position:fixed;transform:translate(-50%,-50%);box-shadow:0 4px 15px #00000080}@keyframes lootFloatUp{0%{opacity:0;transform:translate(-50%)scale(.5)}15%{opacity:1;transform:translate(-50%,-30px)scale(1.1)}30%{opacity:1;transform:translate(-50%,-40px)scale(1)}80%{opacity:1;transform:translate(-50%,-60px)scale(1)}to{opacity:0;transform:translate(-50%,-80px)scale(.9)}}.hud-prompt kbd{background:var(--accent);color:#2a1b00;border-radius:5px;margin-right:4px;padding:2px 7px;font-family:inherit;font-weight:700}.hud-power{background:var(--wood-base);background-image:linear-gradient(180deg, var(--wood-base) 0%, var(--wood-dark) 100%);border:3px solid var(--wood-border);z-index:100;border-radius:12px;flex-direction:column;gap:6px;width:240px;padding:10px 14px;display:flex;position:fixed;bottom:110px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.hud-power .label{letter-spacing:2.5px;text-transform:uppercase;opacity:.8;font-size:10px;font-weight:700}.hud-power .bar-outer{background:#ffffff1a;border-radius:6px;height:12px;overflow:hidden}.hud-power .bar-inner{background:linear-gradient(90deg,#4f4,#fc0,#f44);width:0%;height:100%;transition:width 50ms linear}.hud-fish-banner{text-align:center;pointer-events:none;transition:opacity .2s;position:fixed;top:28%;left:50%;transform:translate(-50%,-50%)}.hud-fish-banner.bite{color:var(--accent);letter-spacing:6px;text-shadow:0 0 24px #f969;font-size:60px;font-weight:700;animation:.35s ease-in-out infinite alternate pulse}.hud-fish-banner.success{color:var(--good);font-size:24px}.hud-fish-banner.fail{color:var(--bad);font-size:22px}@keyframes pulse{0%{transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%,-50%)scale(1.08)}}.hud-money-popup{pointer-events:none;color:var(--accent);text-shadow:0 2px 8px #00000080;font-size:22px;font-weight:700;animation:1.1s ease-out forwards floatup;position:fixed}@keyframes floatup{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-60px)}}.center-panel{pointer-events:auto;width:460px;max-width:94vw;max-height:80vh;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.center-panel h2{letter-spacing:2px;margin:0 0 4px;font-size:22px}.center-panel .panel-sub{letter-spacing:1.5px;opacity:.6;text-transform:uppercase;margin:0 0 16px;font-size:12px}.shop-money{background:#ffd16614;border:1px solid #ffd16640;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:8px 12px;display:flex}.shop-money .label{text-transform:uppercase;letter-spacing:1.5px;opacity:.7;font-size:11px}.shop-money .value{color:var(--accent);font-size:20px;font-weight:700}.upgrade-row{background:#ffffff0a;border-radius:10px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.upgrade-row .info{flex:1}.upgrade-row .name{font-size:15px;font-weight:600}.upgrade-row .desc{opacity:.65;margin-top:2px;font-size:12px}.upgrade-row .level-pills{gap:3px;margin-top:6px;display:flex}.upgrade-row .pill{background:#ffffff1a;border-radius:3px;width:22px;height:5px}.upgrade-row .pill.filled{background:var(--accent)}.upgrade-row .buy{text-align:center;min-width:110px}.sell-list{flex-direction:column;gap:6px;max-height:280px;margin:0 0 14px;padding:0;list-style:none;display:flex;overflow:auto}.sell-list li{background:#ffffff0a;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.sell-list .swatch{display:none}.sell-list .fish-icon{object-fit:contain;filter:drop-shadow(0 2px 2px #00000080);width:32px;height:32px}.sell-list .fname{flex:1}.sell-list .fcount{opacity:.7;font-size:13px}.sell-list .fvalue{color:var(--accent);font-weight:600}.sell-total{background:#4ecdc41a;border:1px solid #4ecdc44d;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 12px;display:flex}.sell-total .label{text-transform:uppercase;letter-spacing:1.5px;font-size:12px}.sell-total .value{color:var(--teal);font-size:22px;font-weight:700}.panel-actions{justify-content:flex-end;gap:8px;display:flex}.empty-state{text-align:center;opacity:.55;padding:30px 0;font-size:14px}.victory-overlay{-webkit-backdrop-filter:blur(6px);pointer-events:auto;z-index:30;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.victory-card{text-align:center;width:500px;max-width:94vw}.victory-card .crown{letter-spacing:4px;background:linear-gradient(90deg,#ffd166,#f96);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:50px;font-weight:700}.victory-card h2{letter-spacing:4px;text-transform:uppercase;margin:6px 0 18px;font-size:18px}.victory-card .winner{margin:8px 0 20px;font-size:28px;font-weight:600}.victory-rank{margin:0 0 20px;padding:0;list-style:none}.victory-rank li{background:#ffffff0d;border-radius:8px;align-items:center;gap:10px;margin-bottom:4px;padding:8px 12px;display:flex}.victory-rank .rank{opacity:.6;width:24px;font-weight:700}.victory-rank .pname{text-align:left;flex:1}.victory-rank .pmoney{color:var(--accent);font-weight:700}.victory-rank .pfish{opacity:.65;text-align:right;min-width:80px;font-size:12px}.hidden{display:none!important}
