/* Fishing Loons Global Cursor v1.0.0 */
@media (hover:hover) and (pointer:fine){
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor *{cursor:none!important}
}
.flh-cursor-rod-visual{
  position:fixed;left:0;top:0;z-index:2147483646;display:block;width:108px;max-width:none!important;height:auto!important;
  pointer-events:none!important;user-select:none;-webkit-user-drag:none;opacity:0;visibility:hidden;
  transform:translate3d(-200px,-200px,0);transform-origin:0 0;will-change:transform;filter:drop-shadow(0 5px 5px rgba(0,0,0,.24))
}
.flh-cursor-rod-visual.is-active{opacity:1;visibility:visible}
.flh-cursor-rig{position:fixed;inset:0;z-index:2147483645;width:100vw;height:100vh;overflow:hidden;pointer-events:none!important;opacity:0;visibility:hidden;transition:opacity .14s ease;contain:layout style paint}
.flh-cursor-rig.is-active{opacity:1;visibility:visible}
.flh-cursor-line-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none!important}
.flh-cursor-line-shadow,.flh-cursor-line-highlight{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.flh-cursor-line-shadow{stroke:rgba(2,8,10,.46);stroke-width:1.45}
.flh-cursor-line-highlight{stroke:var(--fl-rig-line-color,#dcecf1);stroke-opacity:.78;stroke-width:.62}
.flh-cursor-lure,.flh-cursor-lure-scene{position:absolute;left:0;top:0;display:block;max-width:none!important;pointer-events:none!important;user-select:none;-webkit-user-drag:none;transform-origin:0 0;will-change:transform;filter:drop-shadow(0 8px 8px rgba(0,0,0,.26))}
.flh-cursor-lure{height:auto!important}.flh-cursor-lure-scene{overflow:visible;height:var(--flh-lure-scene-height,auto)}
.flh-cursor-lure-layer,.flh-cursor-lure-hook,.flh-cursor-lure-tail{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none!important;pointer-events:none!important;user-select:none;-webkit-user-drag:none}
.flh-cursor-lure-hook,.flh-cursor-lure-tail{transform-origin:0 0;will-change:transform}.flh-cursor-lure-tail{z-index:0}.flh-cursor-lure-layer{z-index:1}.flh-cursor-lure-hook{z-index:2}
.flh-rod-guided-line{position:fixed;inset:0;z-index:2147483647;width:100vw;height:100vh;overflow:visible;pointer-events:none!important}
.flh-rod-line-shadow,.flh-rod-line-highlight{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.flh-rod-line-shadow{stroke:rgba(2,8,10,.42);stroke-width:1.15}.flh-rod-line-highlight{stroke:var(--fl-rig-line-color,#dcecf1);stroke-opacity:.76;stroke-width:.56}
@media (hover:none),(pointer:coarse){.flh-cursor-rod-visual,.flh-cursor-rig,.flh-rod-guided-line{display:none!important}}
@media (prefers-reduced-motion:reduce){.flh-cursor-rig,.flh-rod-guided-line{display:none!important}}

/* Visitor-facing cursor mode control, injected into the desktop Tackle Box. */
.flc-cursor-setting{margin-top:12px;padding:12px;border:1px solid rgba(153,192,223,.16);border-radius:12px;background:linear-gradient(135deg,rgba(153,192,223,.075),rgba(7,20,29,.35));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.flc-cursor-setting-copy small,.flc-cursor-setting-copy strong,.flc-cursor-setting-copy span{display:block}
.flc-cursor-setting-copy small{font-size:7px;font-weight:900;letter-spacing:.17em;color:#6f92a5}
.flc-cursor-setting-copy strong{margin-top:3px;color:#eee7d5;font:800 16px/1 "Barlow Condensed",Arial,sans-serif;letter-spacing:.055em}
.flc-cursor-setting-copy span{margin-top:4px;color:#7898aa;font-size:8px}
.flc-cursor-toggle{position:relative;min-height:38px;padding:0 37px 0 12px!important;border:1px solid rgba(153,192,223,.36)!important;border-radius:10px!important;background:#0a1d28!important;color:#99c0df!important;box-shadow:none!important;font:800 9px/1 "Barlow",Arial,sans-serif!important;letter-spacing:.08em!important;text-transform:uppercase!important;cursor:pointer!important}
.flc-cursor-toggle:before,.flc-cursor-toggle:after{display:none!important}
.flc-cursor-toggle i{position:absolute;right:10px;top:50%;width:17px;height:10px;border-radius:999px;background:#35596d;transform:translateY(-50%)}
.flc-cursor-toggle i:after{content:"";position:absolute;width:8px;height:8px;left:1px;top:1px;border-radius:50%;background:#99c0df;transition:transform .18s ease}
.flc-cursor-setting.is-basic .flc-cursor-toggle i:after{transform:translateX(7px);background:#eee7d5}
.flc-cursor-setting.is-basic .flc-cursor-toggle{color:#eee7d5!important;border-color:rgba(238,231,213,.25)!important}
.flc-cursor-toggle:hover,.flc-cursor-toggle:focus-visible{border-color:#99c0df!important;box-shadow:0 0 20px rgba(153,192,223,.12)!important;outline:none!important}

.flc-cursor-toast{position:fixed;left:50%;top:90px;z-index:2147483647;width:min(560px,calc(100vw - 28px));padding:17px 20px;border:1px solid rgba(153,192,223,.42);border-left:5px solid #99c0df;background:rgba(5,20,29,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 22px 64px rgba(0,0,0,.48),0 0 26px rgba(153,192,223,.09);color:#eee7d5;opacity:0;visibility:hidden;transform:translate(-50%,-12px);transition:.2s ease;pointer-events:none}
.flc-cursor-toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.flc-cursor-toast strong,.flc-cursor-toast span{display:block}.flc-cursor-toast strong{font:800 21px/.95 "Barlow Condensed",Arial,sans-serif;letter-spacing:.055em}.flc-cursor-toast span{margin-top:7px;color:#9db3be;font-size:12px;line-height:1.45}
.flc-cursor-fallback{position:fixed;right:16px;bottom:16px;z-index:2147482000;padding:9px 12px;border:1px solid rgba(153,192,223,.35);background:rgba(5,20,29,.88);color:#99c0df;font-size:8px;font-weight:900;letter-spacing:.14em}
@media(max-width:1180px),(hover:none),(pointer:coarse){.flc-cursor-setting,.flc-cursor-fallback{display:none!important}}

/* ============================================================
   v1.0.5 — DESKTOP TACKLE BOX CURSOR CONTROL
   Match the Gear Locker UI and isolate the toggle from global button CSS.
   ============================================================ */
@media (min-width:1181px) and (hover:hover) and (pointer:fine){
  html body .flr-tacklebox-panel .flc-cursor-setting{
    width:100%!important;
    margin:12px 0 0!important;
    padding:13px 14px!important;
    border:1px solid rgba(153,192,223,.18)!important;
    border-radius:12px!important;
    background:linear-gradient(135deg,rgba(153,192,223,.055),rgba(4,17,25,.56))!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 188px!important;
    gap:14px!important;
    align-items:center!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.015)!important;
  }
  html body .flr-tacklebox-panel .flc-cursor-setting-copy{
    min-width:0!important;
  }
  html body .flr-tacklebox-panel .flc-cursor-setting-copy small{
    font:900 8px/1 "Barlow",Arial,sans-serif!important;
    letter-spacing:.16em!important;
    color:#7398ab!important;
  }
  html body .flr-tacklebox-panel .flc-cursor-setting-copy strong{
    margin-top:5px!important;
    font:800 18px/1 "Barlow Condensed",Arial,sans-serif!important;
    letter-spacing:.055em!important;
    color:#eee7d5!important;
  }
  html body .flr-tacklebox-panel .flc-cursor-setting-copy span{
    margin-top:5px!important;
    font:500 9px/1.25 "Barlow",Arial,sans-serif!important;
    letter-spacing:0!important;
    color:#7898aa!important;
  }

  html body .flr-tacklebox-panel button.flc-cursor-toggle{
    -webkit-appearance:none!important;
    appearance:none!important;
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:188px!important;
    min-width:188px!important;
    max-width:188px!important;
    height:50px!important;
    min-height:50px!important;
    max-height:50px!important;
    margin:0!important;
    padding:0 48px 0 15px!important;
    border:1px solid rgba(153,192,223,.34)!important;
    border-radius:8px!important;
    background:#0a1d28!important;
    color:#99c0df!important;
    box-shadow:5px 5px 0 rgba(0,0,0,.22)!important;
    font:800 11px/1 "Barlow",Arial,sans-serif!important;
    letter-spacing:.075em!important;
    text-align:left!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    cursor:pointer!important;
    transform:none!important;
    transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease!important;
  }
  html body .flr-tacklebox-panel button.flc-cursor-toggle:before,
  html body .flr-tacklebox-panel button.flc-cursor-toggle:after{
    content:none!important;
    display:none!important;
  }
  html body .flr-tacklebox-panel button.flc-cursor-toggle [data-flc-cursor-toggle-label]{
    display:block!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  html body .flr-tacklebox-panel button.flc-cursor-toggle i{
    position:absolute!important;
    right:13px!important;
    top:50%!important;
    display:block!important;
    width:29px!important;
    height:16px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(153,192,223,.22)!important;
    border-radius:999px!important;
    background:#35596d!important;
    transform:translateY(-50%)!important;
    pointer-events:none!important;
  }
  html body .flr-tacklebox-panel button.flc-cursor-toggle i:before{
    content:none!important;
    display:none!important;
  }
  html body .flr-tacklebox-panel button.flc-cursor-toggle i:after{
    content:""!important;
    position:absolute!important;
    display:block!important;
    width:12px!important;
    height:12px!important;
    left:1px!important;
    top:1px!important;
    margin:0!important;
    border:0!important;
    border-radius:50%!important;
    background:#99c0df!important;
    box-shadow:none!important;
    transform:none!important;
    transition:transform .18s ease,background .18s ease!important;
  }
  html body .flr-tacklebox-panel .flc-cursor-setting.is-basic button.flc-cursor-toggle i:after{
    transform:translateX(13px)!important;
    background:#eee7d5!important;
  }
  html body .flr-tacklebox-panel button.flc-cursor-toggle:hover,
  html body .flr-tacklebox-panel button.flc-cursor-toggle:focus-visible{
    border-color:#99c0df!important;
    background:#0d2634!important;
    transform:translate(-1px,-1px)!important;
    box-shadow:7px 7px 0 rgba(0,0,0,.2),0 0 18px rgba(153,192,223,.08)!important;
    outline:none!important;
  }
}


/* ============================================================
   v1.0.6 — KEEP THE COMPLETE CURSOR RIG ABOVE SITE OVERLAYS
   The rod was already topmost, while the physics rig containing the hanging
   line + lure sat below Fishing Loons modals. Keep all visual cursor layers
   together at the top of the document stack without intercepting interaction.
   ============================================================ */
html body .flh-cursor-rig{
  z-index:2147483645!important;
  pointer-events:none!important;
}
html body .flh-cursor-rod-visual{
  z-index:2147483646!important;
  pointer-events:none!important;
}
html body .flh-rod-guided-line{
  z-index:2147483647!important;
  pointer-events:none!important;
}
html body .flh-cursor-rig *,
html body .flh-cursor-rod-visual,
html body .flh-rod-guided-line{
  pointer-events:none!important;
}

/* Explicitly preserve the stack while Fishing Loons overlays are open.
   These selectors are defensive only; the global values above do the work. */
html body.flr-loadout-open .flh-cursor-rig,
html body:has(.flr-tacklebox-panel.is-open) .flh-cursor-rig,
html body:has(.flr-mobile-host-tackle.is-open) .flh-cursor-rig,
html body:has(.fld-notes-modal:not([hidden])) .flh-cursor-rig{
  z-index:2147483645!important;
}


/* ============================================================
   v1.0.7 — ONE TRUE VISUAL CURSOR LAYER
   The rod, guided rod-line and hanging physics rig now live inside one
   dedicated viewport-level stacking context. This keeps the COMPLETE cursor
   above Fishing Loons overlays (Tackle Box, Episode Notes, Gear Bench, etc.)
   without ever blocking clicks or hover interaction.
   ============================================================ */
html body #flc-cursor-visual-root,
html #flc-cursor-visual-root{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  z-index:2147483647!important;
  pointer-events:none!important;
  overflow:visible!important;
  isolation:isolate!important;
  contain:none!important;
  transform:none!important;
  filter:none!important;
  opacity:1!important;
  visibility:visible!important;
}
html #flc-cursor-visual-root .flh-cursor-rig{
  z-index:20!important;
  pointer-events:none!important;
}
html #flc-cursor-visual-root .flh-cursor-rod-visual{
  z-index:30!important;
  pointer-events:none!important;
}
html #flc-cursor-visual-root .flh-rod-guided-line{
  z-index:40!important;
  pointer-events:none!important;
}
html #flc-cursor-visual-root *,
html #flc-cursor-visual-root svg,
html #flc-cursor-visual-root img{
  pointer-events:none!important;
}

/* The visual wrapper must remain above our own modal stacks even while body
   scrolling is locked. It is visual-only; controls beneath remain clickable. */
body.flr-loadout-open #flc-cursor-visual-root,
body.flr-mobile-host-open #flc-cursor-visual-root,
body:has(.flr-tacklebox-panel.is-open) #flc-cursor-visual-root,
body:has(.fld-notes-modal:not([hidden])) #flc-cursor-visual-root{
  z-index:2147483647!important;
  pointer-events:none!important;
}


/* ============================================================
   v1.0.8 — NEVER SHOW THE NATIVE HAND UNDER THE LOONS CURSOR
   Popup / theme controls can carry very specific cursor:pointer!important
   declarations. When the rendered Fishing Loons cursor is active, explicitly
   suppress the native cursor on all interactive/control shapes too.
   Basic Cursor mode removes these active classes, so normal pointers return.
   ============================================================ */
@media (hover:hover) and (pointer:fine){
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor *,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor a,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor button,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor [role="button"],
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor input,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor select,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor textarea,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor label,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor summary,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor [tabindex]{
    cursor:none!important;
  }
}


/* ============================================================
   v1.0.9 — TOAST READABILITY + TIMING SUPPORT
   Slightly larger type and a touch more breathing room so the cursor-mode
   jokes can actually be read during their longer display windows.
   ============================================================ */
html body .flc-cursor-toast{
  width:min(620px,calc(100vw - 28px))!important;
  padding:20px 24px!important;
}
html body .flc-cursor-toast strong{
  font:800 24px/1 "Barlow Condensed",Arial,sans-serif!important;
  letter-spacing:.05em!important;
}
html body .flc-cursor-toast span{
  margin-top:9px!important;
  color:#aabcc5!important;
  font-size:14px!important;
  line-height:1.5!important;
  letter-spacing:.005em!important;
}
@media(max-width:640px){
  html body .flc-cursor-toast{
    top:76px!important;
    width:calc(100vw - 22px)!important;
    padding:17px 18px!important;
  }
  html body .flc-cursor-toast strong{
    font-size:21px!important;
  }
  html body .flc-cursor-toast span{
    margin-top:7px!important;
    font-size:13px!important;
    line-height:1.45!important;
  }
}


/* ============================================================
   v1.0.10 — SHARP TACKLE-BOX CURSOR CONTROL
   The cursor-mode module lives inside Rig Builder's Tackle Box, so it must
   inherit the same squared Fishing Loons geometry instead of rounded cards.
   ============================================================ */
@media (min-width:1181px) and (hover:hover) and (pointer:fine){
  html body .flr-tacklebox-panel .flc-cursor-setting,
  html body .flr-tacklebox-panel button.flc-cursor-toggle,
  html body .flr-tacklebox-panel button.flc-cursor-toggle i,
  html body .flr-tacklebox-panel button.flc-cursor-toggle i:after{
    border-radius:0!important;
  }
}


/* ============================================================
   v1.0.11 — ZERO-WRITE NATIVE CURSOR SUPPRESSION
   Keep the browser hand hidden entirely in CSS. No pointerover JS mutations,
   no inline-style writes, no hover-time style invalidation.
   ============================================================ */
@media (hover:hover) and (pointer:fine){
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor *,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor *::before,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor *::after,
  html.flc-custom-cursor-enabled body.flc-custom-cursor-enabled.flc-rendered-rod-cursor :is(
    a,button,input,select,textarea,label,summary,
    [role="button"],[role="link"],[tabindex],
    [onclick],[data-action],[data-tab],[data-fld-tab]
  ){
    cursor:none!important;
  }
}


/* ============================================================
   v1.0.12 — HIGH-POLLING MOUSE PERFORMANCE
   Rod movement is RAF-throttled in JS. Keep cursor visuals isolated from page
   paint so their movement cannot invalidate unrelated UI such as Loon Wire.
   ============================================================ */
html body #flc-cursor-visual-root{
  contain:strict!important;
  pointer-events:none!important;
}

html body #flc-cursor-visual-root .flh-cursor-rod-visual,
html body #flc-cursor-visual-root .flh-cursor-rig{
  will-change:transform!important;
  backface-visibility:hidden!important;
  -webkit-backface-visibility:hidden!important;
}
