@keyframes tb-shake{20%{transform:translate(-1.5px,1px)}
40%{transform:translate(2px,-1px)}
60%{transform:translate(-2px,-1px)}
80%{transform:translate(1.5px,1px)}
}
.tb-shake{animation:tb-shake 0.32s ease-in-out both}
@keyframes tb-dance{0%,100%{transform:translateY(0) rotate(0)}
25%{transform:translateY(-6px) rotate(-6deg)}
50%{transform:translateY(0) rotate(0)}
75%{transform:translateY(-6px) rotate(6deg)}
}
#sal-tackle .tb-cat.tb-dance{animation:tb-dance 0.9s ease-in-out}
.tb-hidden{display:none !important}
.tb-starfall{position:absolute;width:46px;height:1px;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(205,182,255,0.8) 65%,#fff 100%);box-shadow:0 0 4px rgba(205,182,255,0.85);animation:tb-starfall linear forwards}
@keyframes tb-starfall{0%{opacity:0;transform:rotate(25deg) translate(-40px,0) scaleX(0.25)}
18%{opacity:1}
100%{opacity:0;transform:rotate(25deg) translate(190px,0) scaleX(1)}
}
.tb-toast-stack{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:84%;pointer-events:none;}
.tb-ach-toast{display:flex;align-items:center;gap:10px;background:rgba(20,8,32,0.95);border:1px solid #9d04cc;box-shadow:0 0 18px rgba(157,4,204,0.6);border-radius:8px;padding:9px 14px;color:#eee;font-size:12px;line-height:1.25;animation:tb-ach-in 0.4s ease-out;}
.tb-ach-toast small{color:#aab;}
.tb-ach-trophy{font-size:22px;}
.tb-ach-toast.out{animation:tb-ach-out 0.5s ease-in forwards;}
@keyframes tb-ach-in{from{opacity:0;transform:translateY(-16px);}
to{opacity:1;transform:translateY(0);}
}
@keyframes tb-ach-out{to{opacity:0;transform:translateY(-16px);}
}
.tb-chainglow{filter:drop-shadow(0 0 5px #5be08a) drop-shadow(0 0 10px #5be08a)}
@keyframes tb-fast-bob{0%,100%{transform:translateY(0)}
50%{transform:translateY(-3px)}
}
.fast-bob{animation:tb-fast-bob 0.4s ease-in-out infinite!important}
@keyframes tb-nyan-flow{0%{background-position:0 0}
100%{background-position:200% 0}
}
@keyframes tb-nyan-glow{0%{box-shadow:0 0 14px 2px #ff3b3b,0 0 30px 6px rgba(255,59,59,0.5)}
17%{box-shadow:0 0 14px 2px #ff9d2f,0 0 30px 6px rgba(255,157,47,0.5)}
34%{box-shadow:0 0 14px 2px #ffe53b,0 0 30px 6px rgba(255,229,59,0.5)}
50%{box-shadow:0 0 14px 2px #3bd44a,0 0 30px 6px rgba(59,212,74,0.5)}
67%{box-shadow:0 0 14px 2px #2f9dff,0 0 30px 6px rgba(47,157,255,0.5)}
84%{box-shadow:0 0 14px 2px #9b5cff,0 0 30px 6px rgba(155,92,255,0.5)}
100%{box-shadow:0 0 14px 2px #ff3b3b,0 0 30px 6px rgba(255,59,59,0.5)}
}
#sal-tackle.tb-frenzy .window{position:relative;animation:tb-nyan-glow 1.2s linear infinite;}
#sal-tackle.tb-frenzy .window::after{content:"";position:absolute;inset:-3px;z-index:5;pointer-events:none;padding:3px;background:linear-gradient(90deg,#ff3b3b,#ff9d2f,#ffe53b,#3bd44a,#2f9dff,#9b5cff,#ff3b3b);background-size:200% 100%;animation:tb-nyan-flow 1s linear infinite;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;}
#sal-tackle.tb-frenzy .tb-stage{box-shadow:inset 0 0 30px rgba(255,95,214,0.35);}
#sal-tackle.tb-frenzy .tb-bobber{animation:tb-bite 0.12s ease-in-out infinite!important;}
#sal-tackle.tb-frenzy #tb-combo-badge{color:#ff5fd6;text-shadow:0 0 8px #ff5fd6;}
#tb-combo-wrap.frenzy #tb-combo-fill{background:linear-gradient(90deg,#ff3b3b,#ff9d2f,#ffe53b,#3bd44a,#2f9dff,#9b5cff,#ff3b3b)!important;background-size:200% 100%!important;animation:tb-nyan-flow 1s linear infinite!important;box-shadow:0 0 10px rgba(255,157,47,0.7)!important;}
@keyframes tb-bigcatch-pulse{0%,100%{opacity:0.8}
50%{opacity:1}
}
@keyframes tb-bigcatch-bob{0%,100%{transform:translateY(0)}
50%{transform:translateY(-7px)}
}
#sal-tackle .tb-cat-card .cfound{margin-top:2px;font-family:"Courier New",monospace;font-size:var(--tb-fs-xs);color:#5a4a6e;letter-spacing:0.5px;}
#sal-tackle .tb-cat-card .cmastery{margin-top:2px;font-family:"Courier New",monospace;font-size:var(--tb-fs-xs);color:#ffd24a;letter-spacing:0.5px;text-shadow:0 0 4px rgba(255,210,74,0.4);}
#sal-tackle .tb-qtybar{display:flex;align-items:center;gap:4px;margin-bottom:6px;}
#sal-tackle .tb-qtybar-l{color:#7a7a8a;font-family:"Courier New",monospace;font-size:9px;letter-spacing:1px;margin-right:2px;}
#sal-tackle .tb-qtybtn{font-family:"Courier New",monospace;font-size:10px;padding:1px 8px;background:#0d0d0d;color:#9a9aae;border:1px solid #2a2a2a;cursor:pointer;}
#sal-tackle .tb-qtybtn:hover{color:#ffe066;border-color:#3a3a3a;}
#sal-tackle .tb-qtybtn.on{color:#ff66cc;border-color:#9d04cc;background:#1a0e2a;box-shadow:inset 0 0 6px rgba(157,4,204,0.5);font-weight:bold;min-width:54px;}
#sal-tackle .tb-qty-cy{opacity:0.7;font-size:9px;}
#sal-tackle .tb-side-actions{display:flex;flex-direction:column;gap:4px;margin-top:8px;}
#sal-tackle .tb-side-btn{width:100%;text-align:center;padding:3px 4px;font-size:10px;}
#sal-tackle #tb-shard-ico .tb-ico-wrap,#sal-tackle .tb-stat-v .tb-ico-wrap,#sal-tackle .tb-prestige-big .tb-ico-wrap{vertical-align:middle;}
#sal-tackle .tb-prestige-big .tb-ico-wrap{display:inline-flex;}
#sal-tackle .tb-bait-row.locked{opacity:0.72;}
#sal-tackle .tb-up-row.locked{opacity:0.72;}
#sal-tackle .tb-prestige{text-align:center;padding:14px 10px;background:radial-gradient(120% 100% at 50% 0%,rgba(157,4,204,0.18),rgba(8,5,16,0.6));border:1px solid #5a1a8a;border-radius:4px;}
#sal-tackle .tb-prestige-big{font-size:34px;font-weight:bold;color:#ff66cc;text-shadow:0 0 14px rgba(255,102,204,0.7);line-height:1;}
#sal-tackle .tb-prestige-sub{font-family:"Courier New",monospace;font-size:12px;line-height:16px;color:#e6d8f5;margin-top:4px;}
#sal-tackle .tb-prestige-gain{font-family:"Courier New",monospace;font-size:12px;line-height:1.5;color:#efd5ff;margin:12px 0 8px;}
#sal-tackle .tb-prestige-sub span{display:inline-block;}
#sal-tackle .tb-prestige-pct{font-size:18px;line-height:28.8px;font-weight:bold;vertical-align:baseline;}
#sal-tackle .tb-prestige-life{display:inline-block;vertical-align:middle;margin-left:16px;padding-left:16px;border-left:1px solid #5a1a8a;font-size:24px;color:#ffe066;text-shadow:0 0 10px rgba(255,224,102,0.55);text-align:left;}
#sal-tackle .tb-prestige-life small{display:block;font-family:"Courier New",monospace;font-size:10px;font-weight:normal;letter-spacing:2px;text-transform:uppercase;color:#c9a94a;text-shadow:none;margin-top:3px;}
body.tb-prestige-active #sv-side-social[data-sv]{z-index:9982!important;pointer-events:none;}
#sal-tackle .tb-prestige-btn{font-size:12px;font-weight:bold;padding:6px 18px;color:#ffe9ff;background:#2a0e44;border:2px outset #7a2aaa;text-shadow:0 0 6px #ff66cc;letter-spacing:1px;}
#sal-tackle .tb-prestige-btn:hover{background:#3a1460;border-color:#9d04cc;}
#sal-tackle .tb-prestige-lock{font-family:"Courier New",monospace;font-size:11px;color:#9a8aae;padding:6px;}
#sal-tackle .tb-filter,#sal-tackle .tb-stats-more,#sal-tackle .tb-maxed-foot{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:0;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;font:inherit;text-align:left;text-shadow:none;}
#sal-tackle :focus-visible{outline:2px solid #d46cff;outline-offset:1px;}
#sal-tackle .tb-stats-more{margin-top:5px;font-family:"Courier New",monospace;font-size:9px;color:#9d6acc;cursor:pointer;text-align:right;}
#sal-tackle .tb-stats-more:hover{color:#ff66cc;text-shadow:0 0 5px rgba(255,102,204,0.5);}
#sal-tackle .tb-decor{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
#sal-tackle .tb-deco-spr{position:absolute;background-repeat:no-repeat;image-rendering:pixelated;will-change:transform,opacity;}
@keyframes tb-petal{0%{top:0;transform:translate(0,-16px) rotate(0deg);opacity:0}
12%{opacity:0.8}
80%{opacity:0.62}
100%{top:100%;transform:translate(34px,0) rotate(300deg);opacity:0}
}
#sal-tackle .tb-petal{animation:tb-petal linear infinite;filter:drop-shadow(0 0 3px rgba(255,138,224,0.45));}
@keyframes tb-spk{0%,100%{opacity:0.22;transform:scale(0.7)}
50%{opacity:1;transform:scale(1.06)}
}
#sal-tackle .tb-spark{animation:tb-spk ease-in-out infinite;filter:drop-shadow(0 0 3px rgba(180,210,255,0.6));}
#sal-tackle.tb-frenzy .tb-petal{animation-duration:5s!important;filter:drop-shadow(0 0 4px rgba(255,138,224,0.7));}
#sal-tackle #tb-panel-stats{max-height:var(--tb-panel-h);overflow-y:auto;padding-right:3px;}
#sal-tackle .tb-topbar-stats .tb-stat{padding:1px 5px;border-width:1px;}

#sal-tackle {
  --tb-w: 700px;
  --tb-panel-h: 360px;
  --tb-fs-xs: 9px;
  --tb-fs-sm: 10px;
  --tb-fs: 11px;
  --tb-fs-md: 12px;
  --tb-fs-lg: 14px;
  --tb-fs-xl: 18px;
  --tb-fish-ico: 72px;
  --tb-fish-ico-h: 64px; 
  --tb-gap: 6px;
  --tb-pad: 7px;
  --tb-row-pad: 6px;
  --tb-row-gap: 5px;
  width: var(--tb-w);
  max-width: var(--tb-w);
  min-width: 460px;
}
#sal-tackle,
#sal-tackle * {
  box-sizing: border-box;
}
#sal-tackle .tb-stage {
  position: relative;
  overflow: hidden;
  image-rendering: pixelated;
  border: 2px inset #222;
  margin-bottom: var(--tb-gap);
  background: #04020c url(../images/tb-scene-bg.gif) center top/cover
    no-repeat;
  aspect-ratio: 566/227;
  display: flex;
  flex-direction: column;
}
#sal-tackle .tb-scene {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  image-rendering: pixelated;
  cursor: pointer;
  background: transparent;
}
#sal-tackle .tb-water {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 38%;
  overflow: hidden;
  pointer-events: none;
}
#sal-tackle .tb-cat {
  position: absolute;
  left: 11%;
  bottom: 34.29%;
  width: 17%;
  background-repeat: no-repeat;
  image-rendering: pixelated;
  pointer-events: none;
  user-select: none;
  z-index: 3;
  --cat-glow-rest:drop-shadow(0 0 1px rgba(255,110,225,0.8)) drop-shadow(0 0 1px rgba(178,74,255,0.6));
  --cat-glow-peak:drop-shadow(0 0 1.6px rgba(255,140,235,1)) drop-shadow(0 0 1.4px rgba(200,120,255,0.85));
  filter: var(--cat-glow-rest);
  animation: tb-catglow 2.8s ease-in-out infinite;
}
#sal-tackle .tb-hat {
  position: absolute;
  background-repeat: no-repeat;
  image-rendering: pixelated;
  pointer-events: none;
  z-index: 1;
}
#sal-tackle .tb-hat-placeholder {
  filter: hue-rotate(225deg) saturate(1.4);
}
#sal-tackle .tb-skin-locked {
  position: relative;
  flex: 0 0 76px;
  display: flex;
}
#sal-tackle .tb-skin-locked .tb-skin-preview {
  filter: blur(4px) brightness(0.45);
}
#sal-tackle .tb-skin-locked::after {
  content: '?';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  text-shadow: 0 0 4px #000;
}
#sal-tackle .tb-skin-preview {
  width: 76px;
  flex: 0 0 76px;
  background-repeat: no-repeat;
  image-rendering: pixelated;
}
#sal-tackle .tb-cat[data-skin="pink"] {
  --cat-glow-rest:drop-shadow(0 0 1px rgba(255,110,225,0.8)) drop-shadow(0 0 1px rgba(178,74,255,0.6));
  --cat-glow-peak:drop-shadow(0 0 1.6px rgba(255,140,235,1)) drop-shadow(0 0 1.4px rgba(200,120,255,0.85));
}
#sal-tackle .tb-cat[data-skin="orange"] {
  --cat-glow-rest:drop-shadow(0 0 1px rgba(255,110,225,0.8)) drop-shadow(0 0 1px rgba(178,74,255,0.6));
  --cat-glow-peak:drop-shadow(0 0 1.6px rgba(255,140,235,1)) drop-shadow(0 0 1.4px rgba(200,120,255,0.85));
}
@keyframes tb-catglow {
  0%,
  100% {
    filter: var(--cat-glow-rest);
  }
  50% {
    filter: var(--cat-glow-peak);
  }
}
#sal-tackle .tb-line {
  position: absolute;
  width: 1px;
  background: linear-gradient(
    to bottom,
    rgba(225, 250, 255, 0.95) 0%,
    rgba(120, 225, 255, 0.55) 100%
  );
  transform-origin: top left;
  box-shadow: 0 0 3px rgba(150, 235, 255, 0.6);
  pointer-events: none;
  z-index: 2;
}
#sal-tackle .tb-line.bite {
  background: linear-gradient(
    to bottom,
    #ffffff 0%,
    rgba(150, 235, 255, 0.85) 100%
  );
  box-shadow: 0 0 5px rgba(180, 245, 255, 0.9);
  animation: tb-line-tense 0.16s ease-in-out infinite;
}
@keyframes tb-line-tense {
  0%,
  100% {
    filter: brightness(1);
  }
  50% {
    filter: brightness(1.35);
  }
}
#sal-tackle .tb-bobber {
  --float-cap: #ff526c;
  --float-light: #ffafac;
  --float-glow: #85deef;
  position: absolute;
  width: 16px;
  height: 23px;
  margin: -17px 0 0 -8px;
  pointer-events: none;
  z-index: 3;
  transform-origin: 50% 75%;
  animation: tb-bob 2.4s ease-in-out infinite;
}
#sal-tackle .tb-float-body {
  position: absolute;
  inset: 4px 1px 0;
  border: 1px solid #182e40;
  border-radius: 48% 48% 44% 44%;
  background:
    linear-gradient(90deg, transparent 45%, #12293c33 100%),
    linear-gradient(
      180deg,
      var(--float-light),
      var(--float-cap) 44%,
      #273849 45%,
      #273849 52%,
      #fff7df 53%,
      #d3e7e7 76%,
      #397486aa 77%,
      #173e5477
    );
  box-shadow:
    inset 2px 0 0 #ffffff55,
    1px 1px 2px #071c4090;
}
#sal-tackle .tb-float-body::before {
  content: "";
  position: absolute;
  width: 3px;
  height: 5px;
  left: 3px;
  top: 2px;
  border-radius: 50%;
  background: #fff9;
  transform: rotate(25deg);
}
#sal-tackle .tb-bobber::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 0;
  width: 2px;
  height: 6px;
  background: #fff3ce;
  box-shadow: 0 -1px 0 var(--float-cap);
}
#sal-tackle .tb-bobber::after {
  content: "";
  position: absolute;
  width: 28px;
  height: 7px;
  left: -6px;
  top: 14px;
  border: 1px solid #bcf4ff85;
  border-top-color: transparent;
  border-radius: 50%;
  box-shadow: 0 2px 3px #081e4233;
}
#sal-tackle .tb-bobber[data-style="luminous"] .tb-float-body {
  box-shadow:
    inset 2px 0 0 #ffffff77,
    0 0 7px var(--float-glow),
    0 0 15px var(--float-glow);
}
#sal-tackle .tb-bobber[data-style="void"] .tb-float-body {
  background: radial-gradient(
    ellipse at 40% 30%,
    #bb93ff 0 8%,
    #322057 24%,
    #100f29 65%
  );
  border-color: var(--float-cap);
  box-shadow: 0 0 8px var(--float-glow);
}
#sal-tackle .tb-bobber[data-style="star"] {
  width: 30px;
  height: 35px;
  margin: -29px 0 0 -15px;
  transform-origin: 50% 85%;
}
#sal-tackle .tb-bobber[data-style="star"]::before {
  width: 42px;
  height: 11px;
  left: -6px;
  top: 27px;
  border-radius: 50%;
  background: radial-gradient(
    ellipse,
    #fff6bf66,
    #dca0ff22 48%,
    transparent 72%
  );
  box-shadow: none;
  animation: tb-stardust-water 3s ease-in-out infinite;
}
#sal-tackle .tb-bobber[data-style="star"]::after {
  width: 38px;
  height: 9px;
  left: -4px;
  top: 27px;
  border-color: #ffe8a466;
  border-top-color: transparent;
  box-shadow: 0 2px 5px #b79aff33;
}
#sal-tackle .tb-stardust-aura {
  position: absolute;
  width: 52px;
  height: 52px;
  left: -11px;
  top: -14px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    #fff3b733 0%,
    #dab5ff22 33%,
    transparent 68%
  );
  animation: tb-stardust-aura 3.8s ease-in-out infinite;
}
#sal-tackle .tb-stardust-core {
  position: absolute;
  width: 24px;
  height: 28px;
  left: 3px;
  top: -2px;
  filter: drop-shadow(0 0 3px #fff4c1) drop-shadow(0 0 7px #f4ba64);
  animation: tb-stardust-core 4s ease-in-out infinite;
}
#sal-tackle .tb-stardust-core::before {
  content: "";
  position: absolute;
  inset: 0;
  background: conic-gradient(
    from 30deg,
    #fffef2,
    #ffd66d,
    #fffcec,
    #c58eff,
    #fffef2
  );
  clip-path: polygon(
    50% 0,
    61% 34%,
    88% 15%,
    69% 43%,
    100% 50%,
    67% 60%,
    50% 100%,
    39% 66%,
    12% 85%,
    31% 57%,
    0 50%,
    33% 40%
  );
}
#sal-tackle .tb-stardust-core::after {
  content: "";
  position: absolute;
  left: 9px;
  top: 10px;
  width: 6px;
  height: 7px;
  border-radius: 50%;
  background: #fffef4;
  box-shadow: 0 0 6px 2px #fff4c9;
}
#sal-tackle .tb-stardust-orbit {
  position: absolute;
  left: -6px;
  top: 7px;
  width: 42px;
  height: 12px;
  box-sizing: border-box;
  border: 1px solid #ffe5a9cc;
  border-left-color: #fff7d833;
  border-radius: 50%;
  transform: rotate(-28deg);
  box-shadow: 0 0 4px #ffcf6b44;
}
#sal-tackle .tb-stardust-orbit::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 0,
    #fffef3 0 1px,
    #ffdd9c88 2px,
    transparent 4px
  );
  animation: tb-stardust-orbit 3.6s linear infinite;
}
#sal-tackle .tb-stardust-orbit-cross {
  transform: rotate(42deg);
  border-color: #cdb8ff99;
  border-right-color: #cdb8ff22;
  box-shadow: 0 0 4px #ba91ff33;
}
#sal-tackle .tb-stardust-orbit-cross::after {
  animation-duration: 5.2s;
  animation-direction: reverse;
  background: radial-gradient(
    circle at 50% 0,
    #f4edff 0 1px,
    #c4a7ff88 2px,
    transparent 4px
  );
}
#sal-tackle .tb-stardust-spark {
  position: absolute;
  width: 4px;
  height: 7px;
  background: #fff4c8;
  clip-path: polygon(
    50% 0,
    65% 38%,
    100% 50%,
    65% 62%,
    50% 100%,
    35% 62%,
    0 50%,
    35% 38%
  );
  animation: tb-stardust-spark 3.2s ease-in-out infinite;
}
#sal-tackle .tb-stardust-spark-one {
  left: -8px;
  top: 0;
}
#sal-tackle .tb-stardust-spark-two {
  left: 34px;
  top: 15px;
  animation-delay: -1.1s;
  background: #e4d3ff;
}
#sal-tackle .tb-stardust-spark-three {
  left: 22px;
  top: -12px;
  animation-delay: -2.2s;
  width: 3px;
  height: 5px;
}
#sal-tackle .tb-stardust-splash .tb-splash-drop {
  width: 5px;
  height: 7px;
  border-radius: 0;
  background: #fff0b5;
  clip-path: polygon(
    50% 0,
    65% 35%,
    100% 50%,
    65% 65%,
    50% 100%,
    35% 65%,
    0 50%,
    35% 35%
  );
}
#sal-tackle .tb-stardust-splash .tb-splash-ring {
  color: #ffe7a0;
  box-shadow: 0 0 5px #ffd88144;
}
#sal-tackle .tb-stardust-splash .tb-splash-ring:nth-child(2) {
  color: #d6baff;
}
@keyframes tb-stardust-core {
  0%,
  100% {
    transform: translateY(0) rotate(-8deg);
  }
  50% {
    transform: translateY(-3px) rotate(8deg);
  }
}
@keyframes tb-stardust-aura {
  0%,
  100% {
    opacity: 0.6;
    transform: scale(0.9);
  }
  50% {
    opacity: 1;
    transform: scale(1.12);
  }
}
@keyframes tb-stardust-orbit {
  from {
    transform: rotateY(0deg);
  }
  to {
    transform: rotateY(360deg);
  }
}
@keyframes tb-stardust-spark {
  0%,
  100% {
    opacity: 0;
    transform: translateY(3px) scale(0.4);
  }
  40% {
    opacity: 0.95;
    transform: translateY(-3px) scale(1);
  }
  80% {
    opacity: 0;
    transform: translateY(-9px) scale(0.5);
  }
}
@keyframes tb-stardust-water {
  0%,
  100% {
    opacity: 0.5;
    transform: scaleX(0.85);
  }
  50% {
    opacity: 0.9;
    transform: scaleX(1.15);
  }
}
@media (prefers-reduced-motion: reduce) {
  #sal-tackle .tb-bobber[data-style="star"] *,
  #sal-tackle .tb-bobber[data-style="star"] *::after,
  #sal-tackle .tb-bobber[data-style="star"]::before {
    animation: none !important;
  }
  #sal-tackle .tb-stardust-spark {
    opacity: 0.65;
  }
}
@keyframes tb-bob {
  0%,
  100% {
    transform: translateY(0) rotate(-5deg);
  }
  50% {
    transform: translateY(-2px) rotate(5deg);
  }
}
#sal-tackle .tb-bobber.bite {
  animation: tb-bite 0.3s ease-in-out infinite;
}
@keyframes tb-bite {
  0%,
  100% {
    transform: translateY(0) rotate(-5deg);
  }
  45% {
    transform: translateY(5px) rotate(9deg);
  }
}
#sal-tackle .tb-splash {
  position: absolute;
  width: 0;
  height: 0;
  pointer-events: none;
  z-index: 4;
}
#sal-tackle .tb-splash-ring {
  position: absolute;
  left: -12px;
  top: -4px;
  width: 24px;
  height: 8px;
  border: 1px solid currentColor;
  border-radius: 50%;
  animation: tb-ring 0.85s ease-out both;
}
#sal-tackle .tb-splash-ring:nth-child(2) {
  animation-delay: 0.12s;
  border-width: 1px 0;
}
@keyframes tb-ring {
  0% {
    transform: scale(0.4);
    opacity: 0.8;
  }
  100% {
    transform: scale(2.8);
    opacity: 0;
  }
}
#sal-tackle .tb-splash-drop {
  position: absolute;
  width: 3px;
  height: 5px;
  left: -1px;
  top: -2px;
  border-radius: 60% 60% 50% 50%;
  background: currentColor;
  animation: tb-droplet 0.55s ease-out both;
}
@keyframes tb-droplet {
  0% {
    transform: translate(0, 0) scale(0.5);
    opacity: 0;
  }
  15% {
    opacity: 0.95;
  }
  45% {
    transform: translate(var(--dx), var(--dy)) rotate(var(--dr));
    opacity: 0.85;
  }
  100% {
    transform: translate(var(--ex), 4px) rotate(var(--dr)) scale(0.35);
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  #sal-tackle .tb-bobber {
    animation: none !important;
  }
  #sal-tackle .tb-splash-drop {
    display: none;
  }
  #sal-tackle .tb-splash-ring {
    animation: none;
    opacity: 0.35;
  }
}
#sal-tackle .tb-stage.tb-insight-active .tb-petal {
  visibility: hidden;
}
#sal-tackle .tb-insight-scene {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
  animation: tb-insight-life var(--insight-life) linear both;
}
#sal-tackle .tb-insight-aurora {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 800/350;
  image-rendering: pixelated;
  mix-blend-mode: screen;
}
#sal-tackle .tb-insight-dust {
  position: absolute;
  top: -8px;
  width: var(--dust-size);
  height: calc(var(--dust-size) * 1.6);
  background: var(--dust-color);
  clip-path: polygon(
    50% 0,
    64% 37%,
    100% 50%,
    64% 63%,
    50% 100%,
    36% 63%,
    0 50%,
    36% 37%
  );
  opacity: 0;
  animation: tb-insight-drift var(--dust-time) var(--dust-delay) linear infinite;
}
#sal-tackle .tb-insight-label {
  position: absolute;
  right: 10px;
  bottom: 8px;
  font:
    9px/1.5 "Courier New",
    monospace;
  letter-spacing: 1px;
  color: #e5cfff;
  text-shadow: 0 1px 3px #130e27;
}
#sal-tackle .tb-insight-label::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 3px;
  background: #cda4f1;
  transform-origin: left;
  animation: tb-insight-countdown var(--insight-life) linear forwards;
}
@keyframes tb-insight-life {
  0%,
  100% {
    opacity: 0;
  }
  3%,
  97% {
    opacity: 1;
  }
}
@keyframes tb-insight-drift {
  0% {
    top: -8px;
    transform: translateX(0) rotate(0);
    opacity: 0;
  }
  8% {
    opacity: 0.7;
  }
  65% {
    opacity: 0.5;
  }
  100% {
    top: 105%;
    transform: translateX(var(--dust-drift)) rotate(100deg);
    opacity: 0;
  }
}
@keyframes tb-insight-countdown {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  #sal-tackle .tb-insight-scene {
    animation: none;
  }
  #sal-tackle .tb-insight-dust {
    display: none;
  }
}
#sal-tackle .tb-meteor-scene {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
  animation: tb-meteor-life var(--meteor-life) linear both;
}
#sal-tackle .tb-meteor-sky {
  position: absolute;
  inset: 0 0 35%;
  overflow: hidden;
  background: none;
}

#sal-tackle .tb-event-meteor {
  position: absolute;
  width: var(--meteor-size);
  height: 2px;
  color: var(--meteor-color);
  background: linear-gradient(90deg, transparent, currentColor);
  border-radius: 50%;
  opacity: 0;
  transform-origin: right center;
  animation: tb-event-meteor var(--meteor-cycle) var(--meteor-delay) linear
    infinite;
}
#sal-tackle .tb-event-meteor::after {
  content: "";
  position: absolute;
  right: 0;
  top: -1px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff8e8;
  box-shadow:
    0 0 5px 1px currentColor,
    0 0 12px currentColor;
}
#sal-tackle .tb-event-meteor.tb-meteor-fire {
  height: 3px;
  background: linear-gradient(
    90deg,
    transparent,
    #e7442422 15%,
    #ef572d99 48%,
    #ffa542 80%,
    #fff2bd
  );
}
#sal-tackle .tb-meteor-fire::before {
  content: "";
  position: absolute;
  right: 0;
  top: -4px;
  width: 75%;
  height: 11px;
  transform-origin: right center;
  background: linear-gradient(
    90deg,
    transparent,
    #ef492855 45%,
    #ffa72b99 82%,
    #ffe5a9
  );
  clip-path: polygon(
    0 50%,
    30% 35%,
    16% 12%,
    63% 28%,
    48% 0,
    88% 33%,
    100% 50%,
    85% 72%,
    40% 100%,
    52% 70%,
    18% 85%,
    32% 61%
  );
  animation: tb-meteor-flame 0.24s ease-in-out infinite alternate;
}
#sal-tackle .tb-meteor-fire::after {
  width: 6px;
  height: 4px;
  background: #fff6ce;
  box-shadow:
    0 0 4px #ffe19d,
    0 0 9px #ff8b36;
}
@keyframes tb-meteor-flame {
  from {
    transform: scale(1, 0.75);
    opacity: 0.75;
  }
  to {
    transform: scale(0.84, 1.2);
    opacity: 1;
  }
}
#sal-tackle .tb-meteor-water {
  position: absolute;
  inset: 64% 0 0;
  overflow: hidden;
  background: none;
}
#sal-tackle .tb-meteor-reflection {
  position: absolute;
  width: 38px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #d7eaff, transparent);
  box-shadow:
    8px 5px 0 #badfff55,
    -6px 11px 0 #badfff22;
  opacity: 0;
  animation: tb-meteor-reflection 4.8s var(--reflection-delay) ease-in-out
    infinite;
}
#sal-tackle .tb-meteor-label {
  position: absolute;
  right: 12px;
  top: 12px;
  font:
    9px/1.5 "Courier New",
    monospace;
  letter-spacing: 2px;
  color: #f8e5b7;
  text-shadow: 0 1px 3px #11162b;
  animation: tb-meteor-label 6s ease both;
}
@keyframes tb-event-meteor {
  0% {
    opacity: 0;
    transform: translate(-35px, -18px) rotate(28deg) scaleX(0.5);
  }
  5% {
    opacity: 0.9;
  }
  24% {
    opacity: 0.8;
  }
  33% {
    opacity: 0;
    transform: translate(230px, 125px) rotate(28deg) scaleX(1);
  }
  100% {
    opacity: 0;
    transform: translate(230px, 125px) rotate(28deg) scaleX(1);
  }
}
@keyframes tb-meteor-reflection {
  0%,
  35%,
  100% {
    opacity: 0;
    transform: scaleX(0.5);
  }
  15% {
    opacity: 0.45;
    transform: scaleX(1.3);
  }
}
@keyframes tb-meteor-life {
  0%,
  100% {
    opacity: 0;
  }
  5%,
  94% {
    opacity: 1;
  }
}
@keyframes tb-meteor-label {
  0%,
  100% {
    opacity: 0;
    transform: translateY(3px);
  }
  15%,
  75% {
    opacity: 0.9;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  #sal-tackle .tb-meteor-scene,
  #sal-tackle .tb-meteor-sky::before,
  #sal-tackle .tb-meteor-label {
    animation: none;
  }
  #sal-tackle .tb-event-meteor,
  #sal-tackle .tb-meteor-reflection {
    display: none;
  }
}
#sal-tackle .tb-popup {
  position: absolute;
  pointer-events: none;
  font-family: "Arial Black", "Arial", sans-serif;
  font-size: 19px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: 0.5px;
  -webkit-text-stroke: 2.5px #160826;
  paint-order: stroke fill;
  text-shadow:
    0 0 9px currentColor,
    0 2px 0 rgba(0, 0, 0, 0.55);
  transform-origin: center bottom;
  animation: tb-pop 1.4s cubic-bezier(0.18, 0.9, 0.32, 1.2) forwards;
}
@keyframes tb-pop {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(0.3) rotate(-6deg);
  }
  18% {
    opacity: 1;
    transform: translateY(-8px) scale(1.35) rotate(3deg);
  }
  34% {
    transform: translateY(-15px) scale(0.95) rotate(-1deg);
  }
  50% {
    transform: translateY(-20px) scale(1.05) rotate(0);
  }
  100% {
    opacity: 0;
    transform: translateY(var(--tb-fl, -46px)) scale(1);
  }
}
#sal-tackle .tb-popup.tb-crit {
  animation: tb-pop-crit 1.5s cubic-bezier(0.18, 0.9, 0.32, 1.2) forwards;
}
@keyframes tb-pop-crit {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(1.6) rotate(-4deg);
  }
  12% {
    opacity: 1;
    transform: translateY(-10px) scale(1.6) rotate(2deg);
  }
  30% {
    transform: translateY(-18px) scale(1) rotate(0);
  }
  55% {
    transform: translateY(-24px) scale(1.08);
  }
  100% {
    opacity: 0;
    transform: translateY(var(--tb-fl, -58px)) scale(1);
  }
}
#sal-tackle .tb-popup.tb-hold {
  -webkit-text-stroke: 3px #160826;
  animation: tb-pop-hold 2s cubic-bezier(0.18, 0.9, 0.32, 1.2) forwards;
}
@keyframes tb-pop-hold {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(0.4) rotate(-5deg);
  }
  10% {
    opacity: 1;
    transform: translateY(-12px) scale(1.7) rotate(3deg);
  }
  20% {
    transform: translateY(-20px) scale(1) rotate(0);
  }
  80% {
    opacity: 1;
    transform: translateY(-26px) scale(1);
  }
  100% {
    opacity: 0;
    transform: translateY(var(--tb-fl, -62px)) scale(1.1);
  }
}
#sal-tackle .tb-popup.tb-wobble {
  animation:
    tb-pop 1.4s cubic-bezier(0.18, 0.9, 0.32, 1.2) forwards,
    tb-wob 0.3s ease-in-out 3;
}
@keyframes tb-wob {
  0%,
  100% {
    margin-left: 0;
  }
  25% {
    margin-left: -3px;
  }
  75% {
    margin-left: 3px;
  }
}
#sal-tackle .tb-popup.tb-catch-feed {
  z-index: 2;
  text-shadow: 0 1px 0 #160826;
  -webkit-text-stroke: 2px #160826;
  animation: tb-catch-feed 0.65s ease-out forwards;
}
@keyframes tb-catch-feed {
  0% {
    opacity: 0;
    transform: translate(-50%, 5px) scale(0.6);
  }
  16% {
    opacity: 1;
    transform: translate(-50%, -8px) scale(1.15);
  }
  42% {
    opacity: 1;
    transform: translate(-50%, -16px) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(calc(-50% + var(--feed-x)), var(--feed-y)) scale(0.55);
  }
}
#sal-tackle .tb-haul {
  position: absolute;
  z-index: 1;
  left: 12px;
  bottom: 10px;
  pointer-events: none;
  transform-origin: left bottom;
  text-align: left;
  white-space: nowrap;
  color: #d6e6ff;
  text-shadow: 0 2px 0 #160826;
  font-family: "Arial Black", "Arial", sans-serif;
}
#sal-tackle .tb-haul-label {
  display: block;
  font:
    8px/1.5 "Courier New",
    monospace;
  letter-spacing: 2px;
  color: #b1a4c8;
}
#sal-tackle .tb-haul-value {
  display: block;
  font-size: 15px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  -webkit-text-stroke: 2px #160826;
  paint-order: stroke fill;
}
#sal-tackle .tb-haul-gold {
  color: #ffe066;
}
#sal-tackle .tb-haul-settle {
  animation: tb-haul-settle 0.5s ease-out forwards;
}
@keyframes tb-haul-settle {
  0% {
    opacity: 1;
    transform: scale(1.1);
  }
  25% {
    opacity: 1;
    transform: translateY(-3px) scale(1);
  }
  100% {
    opacity: 0;
    transform: translateY(-15px) scale(0.95);
  }
}
@media (prefers-reduced-motion: reduce) {
  #sal-tackle .tb-popup,
  #sal-tackle .tb-popup.tb-catch-feed,
  #sal-tackle .tb-popup.tb-crit,
  #sal-tackle .tb-popup.tb-wobble,
  #sal-tackle .tb-haul-settle {
    animation: tb-catch-fade 0.5s linear forwards;
  }
  #sal-tackle .tb-popup.tb-hold {
    animation: tb-catch-fade 1.8s linear forwards;
  }
}
@keyframes tb-catch-fade {
  0%,
  65% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.tb-coinfly {
  position: fixed;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  z-index: 89999;
  opacity: 0;
  pointer-events: none;
  will-change: transform;
}
.tb-coinface {
  position: absolute;
  left: -6px;
  top: -6px;
  width: 12px;
  height: 12px;
  box-sizing: border-box;
  border: 2px solid #ffea86;
  border-radius: 50%;
  background: #e9a62b;
  box-shadow:
    inset 0 0 0 1px #996015,
    1px 1px 0 #89510e,
    0 0 7px #ffd24a80;
  animation: tb-coinspin 0.36s linear infinite;
}
.tb-coinface::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 1px;
  width: 2px;
  height: 6px;
  background: #fff3b1;
}
.tb-cointrail {
  position: absolute;
  left: -24px;
  top: -2px;
  width: 24px;
  height: 4px;
  transform-origin: 100% 50%;
  background: linear-gradient(90deg, transparent, #ffd24a99);
  border-radius: 50%;
}
@keyframes tb-coinspin {
  0%,
  100% {
    transform: scaleX(1) rotate(-12deg);
  }
  25% {
    transform: scaleX(0.25) rotate(-12deg);
  }
  50% {
    transform: scaleX(1) rotate(12deg);
  }
  75% {
    transform: scaleX(0.25) rotate(12deg);
  }
}
#sal-tackle .tb-tab {
  padding: 7px 9px;
  font-size: var(--tb-fs);
  font-family: "Pixelated MS Sans Serif", Arial;
  cursor: pointer;
  background: #1a1a1a;
  border: 1px solid #333;
  border-bottom: none;
  color: #999;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
#sal-tackle .tb-tab.active {
  background: #0d0d0d;
  border-bottom: 1px solid #0d0d0d;
  font-weight: bold;
  color: #ffe066;
  text-shadow: 0 0 5px rgba(255, 224, 102, 0.5);
}
#sal-tackle .tb-tab.tb-tab-alert {
  color: #ffe066;
  animation: tb-tabpulse 1s ease-in-out infinite;
}
#sal-tackle .tb-filter.tb-filter-alert {
  animation: tb-tabpulse 1s ease-in-out infinite;
}
@keyframes tb-tabpulse {
  0%,
  100% {
    text-shadow: 0 0 3px rgba(255, 224, 102, 0.4);
  }
  50% {
    text-shadow: 0 0 9px rgba(255, 224, 102, 0.9);
  }
}
#sal-tackle .tb-stat {
  display: inline-block;
  padding: 2px 9px;
  margin-right: 0;
  white-space: nowrap;
  background: rgba(8, 5, 16, 0.55);
  color: #cfc2dd;
  text-shadow: none;
  font-size: var(--tb-fs-md);
  font-weight: bold;
  border: 2px solid;
  border-color: #4a3a66 #1a1226 #1a1226 #4a3a66;
  border-radius: 0;
}
#sal-tackle .tb-stat span {
  color: #ff5fd6;
  text-shadow: 0 0 5px rgba(255, 95, 214, 0.55);
}
@keyframes tb-legend {
  0%,
  100% {
    filter: brightness(1);
  }
  50% {
    filter: brightness(1.4);
  }
}
#sal-tackle .tb-buy {
  font-size: var(--tb-fs);
  min-width: 64px;
  background: #0d0d0d;
  color: #9aff9a;
  border: 1px outset #1e3a1e;
  cursor: pointer;
  font-family: "Courier New", monospace;
  padding: 1px 6px;
}
#sal-tackle .tb-buy:not([disabled]):hover {
  background: #0a1a0a;
  color: #ffe066;
  border-color: #3a5a1a;
}
#sal-tackle .tb-buy[disabled] {
  color: #383838;
  border-color: #1a1a1a;
  cursor: default;
  background: #080808;
}
#sal-tackle .tb-buy.locked[disabled] {
  color: #9d04cc;
  border-color: #3a1a4a;
  background: #100618;
  cursor: default;
}
#sal-tackle .tb-buy.poor[disabled] {
  color: #ff5555;
  border-color: #5a1c1c;
  background: #180a0a;
  cursor: default;
}
#sal-tackle .tb-buy.maxed[disabled] {
  color: #ffa500;
  border-color: #5a3a10;
  background: #1a1206;
  cursor: default;
}
#sal-tackle .tb-up-stat {
  color: #5be08a;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  line-height: 1.3;
}
#sal-tackle .tb-up-stat .tb-up-arrow {
  color: #666;
}
#sal-tackle .tb-up-bar {
  color: #5be08a;
  letter-spacing: -1px;
  font-size: var(--tb-fs-sm);
}
#sal-tackle .tb-up-lvl {
  line-height: 1.35;
  text-align: right;
}
#sal-tackle .tb-maxed-foot {
  margin-top: 2px;
  padding: 5px 8px;
  background: rgba(13, 9, 26, 0.5);
  border: 1px dashed #2a2a2a;
  border-radius: 3px;
  color: #7a7a8a;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  cursor: pointer;
}
#sal-tackle .tb-maxed-foot:hover {
  color: #9aa;
  border-color: #3a3a4a;
}
#sal-tackle .tb-maxed-tag {
  color: #ffa500;
  font-weight: bold;
}
#sal-tackle .tb-maxed-cy {
  color: #666;
  float: right;
}
#sal-tackle .tb-up-maxedrow {
  opacity: 0.5;
}
#sal-tackle .tb-up-maxtag {
  color: #ffa500;
  font-size: var(--tb-fs-xs);
  font-weight: normal;
}
#sal-tackle .tb-log {
  font-family: "Courier New", monospace;
  font-size: 15px;
  color: #a6ffb2;
  background: #000;
  padding: 8px 10px;
  overflow-wrap: anywhere;
  height: var(--tb-panel-h);
  overflow-y: auto;
  border: 1px inset #222;
}
#sal-tackle #tb-panel-ach {
  max-height: var(--tb-panel-h);
  overflow-y: auto;
  padding-right: 3px;
}
#sal-tackle #tb-panel-shop .tb-cat-main {
  max-height: var(--tb-panel-h);
  overflow-y: auto;
  padding-right: 3px;
}
#sal-tackle #tb-panel-box .tb-cat-main {
  max-height: var(--tb-panel-h);
  overflow-y: auto;
  padding-right: 3px;
}
#sal-tackle #tb-panel-bait {
  max-height: var(--tb-panel-h);
  overflow-y: auto;
  padding-right: 3px;
}
#sal-tackle *::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
#sal-tackle *::-webkit-scrollbar-track {
  background: rgba(10, 6, 20, 0.5);
  border-radius: 4px;
}
#sal-tackle *::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #9d04cc, #5a1a8a);
  border-radius: 4px;
  box-shadow: 0 0 4px rgba(157, 4, 204, 0.5);
}
#sal-tackle *::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #c04aff, #7a2aaa);
}
#sal-tackle * {
  scrollbar-width: thin;
  scrollbar-color: #9d04cc rgba(10, 6, 20, 0.5);
}
#sal-tackle .tb-log div {
  line-height: 1.6;
  margin-bottom: 6px;
}
#sal-tackle #tb-tab-log {
  font-size: 15px;
}
#sal-tackle .tb-chat-wrap {
  display: flex;
  gap: var(--tb-gap);
  margin-top: var(--tb-gap);
  background: #05010f;
  border: 2px inset #2a1040;
  padding: 6px;
}
#sal-tackle .tb-chat-cat {
  flex: 0 0 auto;
  height: 78px;
  width: auto;
  image-rendering: pixelated;
  user-select: none;
  align-self: center;
  border: 2px solid #7a7a7a;
  background: #000;
}
#sal-tackle .tb-chat {
  flex: 1;
  min-width: 0;
  height: 78px;
  overflow-y: auto;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-md);
  line-height: 1.45;
  color: #cdbce0;
}
#sal-tackle .tb-chat .ts {
  color: #6a5a80;
}
#sal-tackle .tb-chat .who {
  color: #ff8ae0;
  text-shadow: 0 0 5px rgba(255, 138, 224, 0.5);
}
#sal-tackle .tb-footrow {
  display: flex;
  align-items: center;
  gap: var(--tb-gap);
  margin-top: var(--tb-gap);
}
#sal-tackle .tb-foot-btn {
  font-size: var(--tb-fs);
  font-family: "Pixelated MS Sans Serif", Arial;
  padding: 3px 12px;
  background: #150a26;
  color: #e0b3ff;
  border: 2px outset #3a1a5a;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
}
#sal-tackle .tb-foot-btn:hover {
  background: #1e0e36;
  color: #ffd5ff;
}
#sal-tackle .tb-foot-btn:active {
  border-style: inset;
}
#sal-tackle .tb-foot-ico {
  image-rendering: pixelated;
}
#sal-tackle .tb-music-state {
  color: #9aff9a;
  text-shadow: 0 0 5px rgba(154, 255, 154, 0.6);
}
#sal-tackle .tb-music-state.off {
  color: #ff6a6a;
  text-shadow: 0 0 5px rgba(255, 106, 106, 0.5);
}
#sal-tackle .tb-cast-btn {
  font-size: var(--tb-fs);
  font-weight: bold;
  padding: 2px 13px;
  white-space: nowrap;
  background: rgba(6, 16, 8, 0.6);
  color: #6cff84;
  border: 2px solid;
  border-color: #2f8f4a #0c2a16 #0c2a16 #2f8f4a;
  border-radius: 0;
  cursor: pointer;
  text-shadow: 0 0 5px rgba(108, 255, 132, 0.5);
}
#sal-tackle .tb-cast-btn:hover {
  color: #ffe066;
}
#sal-tackle .tb-cast-btn:active {
  border-color: #0c2a16 #2f8f4a #2f8f4a #0c2a16;
}
#sal-tackle .tb-mode-btn {
  font-size: var(--tb-fs);
  font-weight: bold;
  padding: 2px 13px;
  white-space: nowrap;
  background: rgba(8, 10, 24, 0.6);
  color: #6f9cff;
  border: 2px solid;
  border-color: #3a5ab0 #121a36 #121a36 #3a5ab0;
  border-radius: 0;
  cursor: pointer;
  text-shadow: 0 0 5px rgba(111, 156, 255, 0.5);
}
#sal-tackle .tb-mode-btn.manual {
  color: #44ccff;
}
#sal-tackle .tb-mode-btn:hover {
  opacity: 0.88;
}
#sal-tackle .tb-mode-btn:active {
  border-color: #121a36 #3a5ab0 #3a5ab0 #121a36;
}
#tb-ddr-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  z-index: 10;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.tb-ddr-key {
  width: 42px;
  height: 52px;
  border: 2px solid #2a2a2a;
  background: #0a0a0a;
  color: #3a3a3a;
  font-family: "Courier New", monospace;
  font-weight: bold;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  gap: 2px;
  transition:
    border-color 0.08s,
    color 0.08s,
    box-shadow 0.08s;
}
.tb-ddr-key.active {
  border-color: #ffe066;
  color: #ffe066;
  background: #140e00;
  box-shadow:
    0 0 16px #ffe066,
    0 0 5px #ffe066 inset;
  animation: tb-ddr-pulse 0.35s ease-in-out infinite;
}
.tb-ddr-key.hit {
  border-color: #9aff9a;
  color: #9aff9a;
  background: #001200;
  box-shadow: 0 0 10px #9aff9a;
  animation: none;
}
.tb-ddr-key.miss {
  border-color: #ff4444;
  color: #ff4444;
  background: #120000;
  box-shadow: 0 0 10px #ff4444;
  animation: none;
}
.tb-ddr-key.wrong {
  border-color: #ff4444 !important;
  color: #ff4444 !important;
  background: #1a0000 !important;
  box-shadow: 0 0 14px #ff4444 !important;
  animation: none !important;
}
@keyframes tb-ddr-pulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.12);
  }
}
@keyframes tb-lflash {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes tb-lvlup-pop {
  0% {
    transform: scale(1);
  }
  35% {
    transform: scale(1.6);
    color: #ffe066;
    text-shadow: 0 0 14px #ffe066;
  }
  65% {
    transform: scale(0.92);
  }
  100% {
    transform: scale(1);
  }
}
#sal-tackle #tb-level-badge.lvlup {
  animation: tb-lvlup-pop 0.6s ease-out;
  display: inline-block;
}
#sal-tackle .tb-bubble {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(140, 210, 255, 0.28);
  pointer-events: none;
}
@keyframes tb-bbl {
  0% {
    opacity: 0.55;
    transform: translateY(0) translateX(0);
  }
  50% {
    transform: translateY(-18px) translateX(2px);
    opacity: 0.35;
  }
  100% {
    transform: translateY(-42px) translateX(-2px);
    opacity: 0;
  }
}

#sal-tackle .tb-twocol {
  display: flex;
  gap: var(--tb-gap);
  align-items: flex-start;
}
#sal-tackle .tb-side {
  flex: 0 0 132px;
  background: #080808;
  border: 1px inset #222;
  padding: 5px;
  font-family: "Courier New", monospace;
}
#sal-tackle .tb-side-h {
  color: #555;
  font-size: var(--tb-fs-xs);
  letter-spacing: 1px;
  margin-bottom: 4px;
}
#sal-tackle .tb-filter {
  font-size: var(--tb-fs);
  padding: 2px 3px;
  cursor: pointer;
  line-height: 1.5;
  border-radius: 2px;
}
#sal-tackle .tb-filter:hover {
  background: #140a1e;
}
#sal-tackle .tb-stats {
  background: rgba(6, 6, 12, 0.7);
  border: 1px inset #222;
  border-radius: 2px;
  padding: 3px 4px;
}
#sal-tackle .tb-stat {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: var(--tb-fs);
  line-height: 1.6;
}
#sal-tackle .tb-stat-l {
  color: #7a7a8a;
}
#sal-tackle .tb-stat-v {
  color: #9aff9a;
  font-weight: bold;
}
#sal-tackle #tb-panel-stats .tb-stat-v {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: right;
}
#sal-tackle .tb-perk-row.on {
  border-color: #3a6a3a;
  box-shadow: inset 0 0 8px rgba(90, 224, 138, 0.12);
}
#sal-tackle .tb-perk-on {
  color: #5be08a;
  font-size: var(--tb-fs);
  font-weight: bold;
  letter-spacing: 0.5px;
}
#sal-tackle .tb-perk-lock {
  color: #9d04cc;
  font-size: var(--tb-fs);
  font-weight: bold;
}
#sal-tackle .tb-filter.active {
  background: #1a0e2a;
  box-shadow: inset 0 0 6px rgba(157, 4, 204, 0.5);
  font-weight: bold;
}
#sal-tackle .tb-prog-txt {
  font-size: var(--tb-fs-sm);
  color: #888;
  margin-bottom: 3px;
}
#sal-tackle .tb-prog {
  height: 8px;
  background: #0a0a0a;
  border: 1px solid #2a2a2a;
  overflow: hidden;
}
#sal-tackle .tb-prog-bar {
  height: 100%;
  background: linear-gradient(90deg, #9d04cc, #ff66cc);
  box-shadow: 0 0 5px #ff66cc;
}
#sal-tackle .tb-prog-pct {
  font-size: var(--tb-fs-xs);
  color: #9d04cc;
  text-align: right;
  margin-top: 1px;
}
#sal-tackle .tb-side-cat {
  margin-top: 10px;
  text-align: center;
  opacity: 0.85;
}
#sal-tackle .tb-side-cat .tb-ico-wrap.side-deco {
  width: 52px;
  height: 42px;
  filter: drop-shadow(0 0 5px rgba(255, 210, 74, 0.55));
}

#sal-tackle .tb-cat-main {
  flex: 1;
  min-width: 0;
}
#sal-tackle .tb-cat-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 5px;
}
#sal-tackle .tb-cat-title {
  color: #ffe066;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  letter-spacing: 2px;
  text-shadow: 0 0 6px rgba(255, 224, 102, 0.4);
}
#sal-tackle .tb-cat-hint {
  color: #5a6a55;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
}
#sal-tackle .tb-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: var(--tb-gap);
}
#sal-tackle .tb-cat-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: var(--tb-pad);
  background: #0a0a0a;
  border: 1px solid #2a2a2a;
  border-radius: 3px;
  min-height: 42px;
}
#sal-tackle .tb-cat-card .clbl {
  position: absolute;
  top: 4px;
  left: 7px;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
  font-weight: bold;
  letter-spacing: 0.5px;
  background: rgba(0, 0, 0, 0.45);
  padding: 1px 5px;
  border-radius: 3px;
}
#sal-tackle .tb-cat-card .cicon {
  flex: 0 0 auto;
  width: var(--tb-fish-ico);
  height: var(--tb-fish-ico-h);
  display: flex;
  align-items: center;
  justify-content: center;
}
#sal-tackle .tb-ico-wrap.cat-ico {
  width: var(--tb-fish-ico);
  height: var(--tb-fish-ico-h);
}
#sal-tackle .tb-cat-card .cbody {
  min-width: 0;
  padding-top: 10px;
}
#sal-tackle .tb-cat-card .cname {
  color: #ddd;
  font-family: "Pixelated MS Sans Serif", Arial;
  font-size: var(--tb-fs-lg);
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#sal-tackle .tb-cat-card .cdesc {
  color: #666;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  line-height: 1.2;
}
#sal-tackle .tb-cat-card .cct {
  position: absolute;
  bottom: 5px;
  right: 7px;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-md);
  color: #aaa;
}
#sal-tackle .tb-cat-card.locked {
  opacity: 0.5;
}
#sal-tackle .tb-cat-card.locked .cname {
  color: #555;
}
#sal-tackle .tb-cat-card .tb-q {
  color: #444;
  font-size: 30px;
  font-weight: bold;
}
#sal-tackle .tb-cat-card.r-common {
  border-color: #3ea35a;
  box-shadow:
    0 0 4px rgba(62, 163, 90, 0.45),
    inset 0 0 6px rgba(62, 163, 90, 0.12);
}
#sal-tackle .tb-cat-card.r-uncommon {
  border-color: #4f86e0;
  box-shadow:
    0 0 4px rgba(79, 134, 224, 0.5),
    inset 0 0 6px rgba(79, 134, 224, 0.14);
}
#sal-tackle .tb-cat-card.r-rare {
  border-color: #b94ad0;
  box-shadow:
    0 0 5px rgba(185, 74, 208, 0.55),
    inset 0 0 6px rgba(185, 74, 208, 0.16);
}
#sal-tackle .tb-cat-card.r-epic {
  border-color: #ff66cc;
  box-shadow:
    0 0 6px rgba(255, 102, 204, 0.6),
    inset 0 0 7px rgba(255, 102, 204, 0.18);
}
#sal-tackle .tb-cat-card.r-legend {
  border-color: #ffd24a;
  box-shadow:
    0 0 8px rgba(255, 210, 74, 0.6),
    inset 0 0 9px rgba(255, 210, 74, 0.2);
  animation: tb-legend 2.4s ease-in-out infinite;
}
#sal-tackle .tb-cat-card.r-secret {
  border-color: #8a93a3;
  box-shadow:
    0 0 4px rgba(138, 147, 163, 0.45),
    inset 0 0 6px rgba(138, 147, 163, 0.12);
}
#sal-tackle .tb-cat-sell {
  position: absolute;
  top: 2px;
  right: 3px;
  font-size: var(--tb-fs-xs);
  min-width: 15px;
  height: 14px;
  padding: 0 2px;
  line-height: 1;
  cursor: pointer;
  background: #111;
  color: #9aff9a;
  border: 1px solid #333;
  z-index: 2;
}
#sal-tackle .tb-cat-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
  padding-top: 5px;
  border-top: 1px solid #1a1a1a;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-sm);
}

#sal-tackle .tb-up-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--tb-row-pad);
  margin-bottom: var(--tb-row-gap);
  background: #0e0e0e;
  border: 1px solid #2a2a2a;
  border-radius: 3px;
}
#sal-tackle .tb-up-ico {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}
#sal-tackle .tb-up-mid {
  flex: 1;
  min-width: 0;
}
#sal-tackle .tb-up-name {
  color: #e0e0e0;
  font-family: "Pixelated MS Sans Serif", Arial;
  font-size: var(--tb-fs-lg);
  font-weight: bold;
}
#sal-tackle .tb-up-desc {
  color: #888;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-md);
  line-height: 1.25;
}
#sal-tackle .tb-up-lvl {
  flex: 0 0 auto;
  color: #9a9aae;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  white-space: nowrap;
}
#sal-tackle .tb-coin {
  color: #ffd24a;
}
#sal-tackle .tb-stat .tb-coin {
  color: #ffd24a;
  text-shadow: none;
}
#sal-tackle .tb-tip {
  margin-top: 8px;
  padding: 7px 8px;
  background: #080808;
  border: 1px inset #222;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-sm);
  color: #9d6acc;
  line-height: 1.5;
}
#sal-tackle .tb-tip::first-letter {
  color: #ff66cc;
}

#sal-tackle .tb-bait-hero {
  display: flex;
  gap: 12px;
  padding: 12px;
  margin-bottom: 10px;
  background: rgba(26, 20, 8, 0.5);
  border: 1px solid #ffe066;
  border-radius: 4px;
  box-shadow:
    0 0 10px rgba(255, 224, 102, 0.18),
    inset 0 0 14px rgba(255, 224, 102, 0.07);
}
#sal-tackle .tb-bait-hero-ico {
  flex: 0 0 64px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
#sal-tackle .tb-bait-hero-mid {
  flex: 1;
  min-width: 0;
}
#sal-tackle .tb-bait-hero-tag {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
  letter-spacing: 2px;
  color: #ffe066;
  text-shadow: 0 0 6px rgba(255, 224, 102, 0.5);
}
#sal-tackle .tb-bait-hero-name {
  font-size: var(--tb-fs-xl);
  font-weight: bold;
  color: #fff;
  line-height: 1.2;
}
#sal-tackle .tb-bait-hero-role {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
  letter-spacing: 1px;
  color: #9d6acc;
  margin-top: 1px;
}
#sal-tackle .tb-bait-hero-desc {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  color: #9a9aae;
  line-height: 1.4;
  margin-top: 5px;
}
#sal-tackle .tb-cellrow {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}
#sal-tackle .tb-cell {
  border: 1px solid;
  border-radius: 3px;
  padding: 3px 8px;
  background: rgba(6, 4, 14, 0.55);
  text-align: center;
  min-width: 58px;
}
#sal-tackle .tb-cell-t {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
  letter-spacing: 0.5px;
}
#sal-tackle .tb-cell-v {
  font-size: var(--tb-fs-md);
  font-weight: bold;
}
#sal-tackle .tb-mod-none {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  color: #666;
  margin-top: 8px;
}

#sal-tackle .tb-up-hero {
  display: flex;
  gap: 12px;
  padding: 12px;
  margin-bottom: 10px;
  background: rgba(20, 10, 34, 0.6);
  border: 1px solid #9d04cc;
  border-radius: 4px;
  box-shadow:
    0 0 10px rgba(157, 4, 204, 0.22),
    inset 0 0 14px rgba(157, 4, 204, 0.09);
}
#sal-tackle .tb-up-hero-ico {
  flex: 0 0 56px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
#sal-tackle .tb-up-hero-mid {
  flex: 1;
  min-width: 0;
}
#sal-tackle .tb-up-hero-tag {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
  letter-spacing: 2px;
  color: #ff66cc;
  text-shadow: 0 0 6px rgba(255, 102, 204, 0.5);
}
#sal-tackle .tb-up-hero-name {
  font-size: var(--tb-fs-xl);
  font-weight: bold;
  color: #fff;
  line-height: 1.2;
}
#sal-tackle .tb-up-hero-desc {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  color: #9a9aae;
  line-height: 1.4;
  margin-top: 4px;
}
#sal-tackle .tb-up-hero-act {
  flex: 0 0 132px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  text-align: right;
}
#sal-tackle .tb-up-hero-lvl {
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs);
  color: #9a9aae;
}
#sal-tackle .tb-up-hero-act .tb-qtybar {
  justify-content: flex-end;
  margin: 2px 0 0;
}
#sal-tackle .tb-up-hero-buy {
  padding: 5px 8px;
  font-size: var(--tb-fs-md);
}
#sal-tackle .tb-up-row,
#sal-tackle .tb-up-hero {
  position: relative;
}
#sal-tackle .tb-favrow {
  padding-left: 22px;
}
#sal-tackle .tb-up-hero {
  padding-left: 26px;
}
#sal-tackle .tb-fav {
  position: absolute;
  top: 3px;
  left: 3px;
  z-index: 2;
  width: 17px;
  height: 17px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  box-shadow: none;
  border: none;
  background: none;
  line-height: 1;
  font-size: var(--tb-fs-md);
  cursor: pointer;
  color: #4a3a66;
  text-shadow: none;
}
#sal-tackle .tb-fav:active {
  box-shadow: none;
  padding: 0;
}
#sal-tackle .tb-fav:hover {
  color: #ffe066;
}
#sal-tackle .tb-fav.on {
  color: #ffe066;
  text-shadow: 0 0 6px rgba(255, 224, 102, 0.8);
}
#sal-tackle .tb-up-hero .tb-fav {
  top: 5px;
  left: 5px;
  font-size: var(--tb-fs-lg);
  width: 20px;
  height: 20px;
}

#sal-tackle .tb-bait-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--tb-row-pad);
  margin-bottom: var(--tb-row-gap);
  background: #0e0e0e;
  border: 1px solid #2a2a2a;
  border-radius: 3px;
}
#sal-tackle .tb-bait-row.current {
  border-color: #ffe066;
  box-shadow: inset 0 0 8px rgba(255, 224, 102, 0.15);
}
#sal-tackle .tb-on {
  color: #ffe066;
  font-size: var(--tb-fs-xs);
  font-family: "Courier New", monospace;
}
#sal-tackle .tb-mods {
  margin-top: 2px;
  font-family: "Courier New", monospace;
  font-size: var(--tb-fs-xs);
}
#sal-tackle .tb-mods span {
  margin-right: 2px;
}

#sal-tackle .tb-ico-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}
#sal-tackle .tb-asset {
  display: block;
  object-fit: contain;
  image-rendering: pixelated;
  max-width: 100%;
  max-height: 100%;
}

#sal-tackle,
#sal-tackle * {
  font-family: Tahoma, "Segoe UI", Verdana, sans-serif !important;
}
#sal-tackle .tb-cat-title,
#sal-tackle .tb-side-h {
  letter-spacing: 1px;
}

#sal-tackle .tb-body {
  display: flex;
  flex-direction: column;
}
#sal-tackle .tb-body > * {
  flex-shrink: 0;
}
#sal-tackle .tb-body {
  background-color: #06040f;
  background-image:
    radial-gradient(
      180px 120px at 80% 18%,
      rgba(157, 4, 204, 0.18),
      transparent 70%
    ),
    radial-gradient(
      150px 110px at 16% 30%,
      rgba(40, 90, 210, 0.14),
      transparent 70%
    ),
    radial-gradient(1px 1px at 9% 8%, rgba(255, 255, 255, 0.7), transparent),
    radial-gradient(1px 1px at 24% 16%, rgba(205, 185, 255, 0.6), transparent),
    radial-gradient(2px 2px at 38% 6%, rgba(255, 138, 224, 0.55), transparent),
    radial-gradient(1px 1px at 52% 14%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(1px 1px at 67% 9%, rgba(180, 210, 255, 0.6), transparent),
    radial-gradient(1px 1px at 88% 12%, rgba(255, 255, 255, 0.5), transparent),
    radial-gradient(2px 2px at 94% 6%, rgba(120, 200, 255, 0.5), transparent);
}
#sal-tackle .tb-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 6px;
  margin-bottom: 0;
  padding: 6px 7px;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  position: relative;
  z-index: 2;
}
#sal-tackle .tb-topbar-stats {
  display: flex;
  gap: 5px;
  flex-wrap: nowrap;
  flex: 1 1 auto;
  min-width: 0;
}
#sal-tackle .tb-topbar-ctrls {
  display: flex;
  gap: 4px;
  flex: 0 0 auto;
  white-space: nowrap;
}

#sal-tackle .tb-panelwrap {
  position: relative;
  background-color: #06040f;
  background-image:
    radial-gradient(
      140px 90px at 76% 26%,
      rgba(157, 4, 204, 0.2),
      transparent 70%
    ),
    radial-gradient(
      120px 80px at 18% 72%,
      rgba(40, 90, 210, 0.16),
      transparent 70%
    ),
    radial-gradient(1px 1px at 12% 22%, rgba(255, 255, 255, 0.75), transparent),
    radial-gradient(1px 1px at 28% 64%, rgba(205, 185, 255, 0.65), transparent),
    radial-gradient(1px 1px at 41% 12%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(2px 2px at 53% 34%, rgba(255, 138, 224, 0.55), transparent),
    radial-gradient(1px 1px at 63% 78%, rgba(180, 210, 255, 0.6), transparent),
    radial-gradient(1px 1px at 72% 50%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(1px 1px at 84% 84%, rgba(160, 200, 255, 0.6), transparent),
    radial-gradient(1px 1px at 90% 14%, rgba(255, 255, 255, 0.5), transparent),
    radial-gradient(2px 2px at 33% 88%, rgba(120, 200, 255, 0.5), transparent);
  border: 1px solid #3a2a5a;
  border-top: none;
  padding: var(--tb-pad);
  min-height: 150px;
  flex: 1 1 auto;
  overflow: hidden; 
  box-shadow: inset 0 0 16px rgba(157, 4, 204, 0.18);
  isolation: isolate; 
}
#sal-tackle .tb-panel-decor {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;
}
#sal-tackle .tb-panel-decor .tb-deco-spr {
  position: absolute;
  background-repeat: no-repeat;
  image-rendering: pixelated;
}
#sal-tackle .tb-side {
  background: rgba(8, 6, 18, 0.74);
}
#sal-tackle .tb-cat-card {
  background: rgba(10, 8, 22, 0.64);
}
#sal-tackle .tb-up-row {
  background: rgba(13, 9, 26, 0.64);
}
#sal-tackle .tb-bait-row {
  background: rgba(13, 9, 26, 0.64);
}
#sal-tackle .tb-bait-row.current {
  background: rgba(26, 20, 8, 0.6);
}
#sal-tackle .tb-tip {
  background: rgba(6, 4, 14, 0.6);
}
#sal-tackle .tb-prog {
  background: rgba(6, 6, 12, 0.8);
}
#sal-tackle .tb-panelwrap::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(2px 2px at 53% 34%, rgba(255, 138, 224, 0.9), transparent),
    radial-gradient(2px 2px at 33% 88%, rgba(120, 200, 255, 0.85), transparent),
    radial-gradient(2px 2px at 84% 60%, rgba(255, 255, 255, 0.85), transparent);
  animation: tb-twinkle 3.2s ease-in-out infinite;
}
@keyframes tb-twinkle {
  0%,
  100% {
    opacity: 0.25;
  }
  50% {
    opacity: 0.9;
  }
}
#tb-pv-under,
#tb-pv-over {
  position: fixed;
  inset: 0;
  zoom: calc(1 / var(--ui-scale, 1));
  overflow: hidden;
  pointer-events: none;
}
#tb-pv-under {
  z-index: 99100;
  background: radial-gradient(
    900px 700px at var(--cx) var(--cy),
    rgba(20, 4, 34, 0.92) 0%,
    rgba(4, 2, 12, 0.88) 55%,
    rgba(0, 0, 0, 0.75) 100%
  );
  animation: tb-pv-veil 0.5s both;
}
#tb-pv-over {
  z-index: 99102;
  pointer-events: auto;
  font: 13px "Courier New", monospace;
  color: #fff;
}
#sal-tackle.tb-pv-active {
  z-index: 99101 !important;
  pointer-events: none;
  transform-origin: center;
}
#sal-tackle.tb-pv-seize {
  animation: tb-pv-fracture 0.7s linear;
}
#sal-tackle.tb-pv-suck {
  animation: tb-pv-collapse 0.8s cubic-bezier(0.55, 0.05, 0.8, 0.45) forwards;
}
#sal-tackle.tb-pv-reborn {
  animation: tb-pv-return 0.65s cubic-bezier(0.2, 1.4, 0.4, 1);
}
#sal-tackle.tb-pv-reborn > .window {
  animation: tb-pv-glow 1.3s ease-out;
}
@keyframes tb-pv-glow {
  0% {
    box-shadow:
      0 0 34px 10px rgba(157, 4, 204, 0.9),
      0 0 80px 24px rgba(255, 102, 204, 0.5);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(157, 4, 204, 0);
  }
}
#tb-pv-under .pv-hole {
  position: absolute;
  left: var(--cx);
  top: var(--cy);
  width: var(--diameter);
  height: var(--diameter);
  margin-left: calc(var(--diameter) / -2);
  margin-top: calc(var(--diameter) / -2);
  border-radius: 50%;
  background: radial-gradient(
    circle,
    #000 26%,
    rgba(157, 4, 204, 0.8) 44%,
    rgba(255, 102, 204, 0.35) 62%,
    transparent 72%
  );
  box-shadow: 0 0 80px 20px rgba(157, 4, 204, 0.55);
  animation: tb-pv-hole 1.5s cubic-bezier(0.4, 0, 0.6, 1) forwards;
}
#tb-pv-under .pv-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent,
    rgba(255, 102, 204, 0.5),
    transparent 34%,
    rgba(157, 4, 204, 0.6),
    transparent 66%,
    rgba(120, 60, 255, 0.4),
    transparent
  );
  animation: tb-pv-orbit 0.9s linear infinite;
}
#tb-pv-under .pv-ring:nth-child(2) {
  inset: 12%;
  background: conic-gradient(
    from 180deg,
    transparent,
    rgba(214, 150, 255, 0.45),
    transparent 40%,
    rgba(255, 102, 204, 0.4),
    transparent 75%
  );
  animation-duration: 0.55s;
  animation-direction: reverse;
}
#tb-pv-under .pv-infall,
#tb-pv-over .pv-shard {
  position: absolute;
  left: var(--cx);
  top: var(--cy);
  color: #ff9ce8;
  text-shadow: 0 0 8px #ed58cf;
  font-size: 18px;
}
#tb-pv-under .pv-infall {
  animation: tb-pv-infall 1.5s ease-in both;
}
#tb-pv-over .pv-shard {
  animation: tb-pv-shard 1.3s cubic-bezier(0.12, 0.65, 0.3, 1) both;
}
#tb-pv-over .pv-bsod {
  position: absolute;
  inset: 0;
  background: #0000aa;
  display: flex;
  align-items: center;
  justify-content: center;
  font: 13px/1.55 "Courier New", monospace;
  animation: tb-pv-bsod 0.12s steps(2) infinite;
}
@keyframes tb-pv-bsod {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.93;
  }
}
@keyframes tb-pv-blink {
  0%,
  49% {
    opacity: 1;
  }
  50%,
  100% {
    opacity: 0;
  }
}
#tb-pv-over .pv-bsod-copy {
  max-width: 560px;
  padding: 0 20px;
  text-align: center;
}
#tb-pv-over .pv-bsod-title {
  text-align: center;
}
#tb-pv-over .pv-bsod-title span {
  background: #aaa;
  color: #0000aa;
  padding: 0 8px;
  font-weight: bold;
}
#tb-pv-over .pv-bsod p {
  font: inherit;
  color: inherit;
  margin: 12px 0 0;
}
#tb-pv-over .pv-payoff {
  position: absolute;
  left: var(--cx);
  top: var(--cy);
  width: min(600px, calc(100vw - 24px));
  transform: translate(-50%, -50%);
  text-align: center;
  letter-spacing: 2px;
  animation: tb-pv-payoff 1.35s ease-out both;
}
#tb-pv-over .pv-payoff strong {
  display: block;
  font: bold 34px/1.2 "Courier New", monospace;
  color: #ffe066;
  text-shadow:
    0 0 14px #ff66cc,
    0 0 26px #9d04cc,
    2px 2px #000;
}
#tb-pv-over .pv-payoff small {
  display: block;
  font: bold 13px "Courier New", monospace;
  color: #ff8ae0;
  text-shadow:
    0 0 8px #cc4acc,
    1px 1px #000;
  margin-top: 4px;
}
#tb-pv-over .pv-skip {
  position: absolute;
  right: 14px;
  bottom: 14px;
  font: 11px "Courier New", monospace;
  background: #10091dde;
  color: #dcb8ee;
  border: 1px solid #745181;
  padding: 5px 9px;
  cursor: pointer;
}
#tb-pv-over .pv-skip:focus-visible {
  outline: 2px solid #ff9ce8;
  outline-offset: 2px;
}
@keyframes tb-pv-veil {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes tb-pv-fracture {
  0%,
  100% {
    transform: translate(0, 0);
  }
  10% {
    transform: translate(-3px, 2px) rotate(-0.5deg);
  }
  20% {
    transform: translate(4px, -2px) rotate(0.6deg);
    filter: hue-rotate(40deg);
  }
  32% {
    transform: translate(-5px, -3px);
  }
  44% {
    transform: translate(3px, 4px) rotate(-0.8deg);
    filter: invert(0.08) hue-rotate(-35deg);
  }
  58% {
    transform: translate(-6px, 1px) rotate(1deg);
  }
  72% {
    transform: translate(5px, -4px);
    filter: hue-rotate(65deg) saturate(2);
  }
  86% {
    transform: translate(-4px, 3px) rotate(-1.2deg);
  }
}
@keyframes tb-pv-collapse {
  0% {
    transform: scale(1.04);
    opacity: 1;
  }
  28% {
    transform: scale(1.15, 0.78) rotate(-7deg);
    filter: drop-shadow(12px 0 #ff69dd);
  }
  58% {
    transform: scale(0.5, 1.2) rotate(38deg);
    filter: brightness(1.7);
  }
  82% {
    transform: scale(0.12, 0.6) rotate(180deg);
    opacity: 1;
  }
  100% {
    transform: scale(0) rotate(470deg);
    opacity: 0;
  }
}
@keyframes tb-pv-return {
  0% {
    transform: scale(0.001) rotate(-220deg);
    opacity: 0;
  }
  55% {
    transform: scale(1.06) rotate(5deg);
    opacity: 1;
  }
  80% {
    transform: scale(0.97) rotate(-1.5deg);
  }
  100% {
    transform: scale(1) rotate(0deg);
  }
}
@keyframes tb-pv-hole {
  0% {
    transform: scale(0.25);
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  100% {
    transform: scale(1.4);
    opacity: 1;
  }
}
@keyframes tb-pv-orbit {
  to {
    transform: rotate(360deg);
  }
}
@keyframes tb-pv-infall {
  0% {
    transform: translate(var(--dx), var(--dy)) scale(0.6);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  100% {
    transform: translate(0, 0) rotate(180deg) scale(0.1);
    opacity: 0;
  }
}
@keyframes tb-pv-shard {
  0% {
    transform: translate(0, 0) scale(0.2) rotate(0deg);
    opacity: 0;
  }
  12% {
    opacity: 1;
  }
  100% {
    transform: translate(var(--dx), var(--dy)) scale(1) rotate(340deg);
    opacity: 0;
  }
}
@keyframes tb-pv-payoff {
  0% {
    scale: 0.3;
    opacity: 0;
  }
  12% {
    scale: 1.18;
    opacity: 1;
  }
  20%,
  72% {
    scale: 1;
    opacity: 1;
  }
  100% {
    scale: 1.04;
    opacity: 0;
  }
}
#tb-pv-over .pv-nova {
  position: absolute;
  left: var(--cx);
  top: var(--cy);
  margin: -320px;
  width: 640px;
  height: 640px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    #fff 0%,
    #ffd6ff 26%,
    rgba(255, 102, 204, 0.55) 48%,
    rgba(157, 4, 204, 0.35) 66%,
    transparent 78%
  );
  animation: tb-pv-nova 0.55s ease-out forwards;
}
@keyframes tb-pv-nova {
  0% {
    transform: scale(0.05);
    opacity: 1;
  }
  70% {
    opacity: 0.9;
  }
  100% {
    transform: scale(2.3);
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  #tb-pv-under,
  #tb-pv-over .pv-payoff {
    animation: none;
  }
  #tb-pv-under {
    background: #05000c44;
  }
}
