/* =========================================================================
   RF THUNDER — CUSTOM CURSOR (site-wide, lightweight)
   Loaded on every page EXCEPT the Home template, which already ships its
   own richer copy of this same cursor as part of rfthunder-home.css/js
   (tied into its WebGL loader). This file is intentionally self-contained
   — every color/easing value has an inline fallback via var(--x, fallback)
   — so the cursor renders correctly even on a page that never loaded
   rfthunder-home.css or rfthunder-blog.css (e.g. a plain Elementor page),
   and picks up the real brand colors automatically on pages that did.
   ========================================================================= */

body{ cursor:none; }
a, button, [role="button"], input[type="submit"], input[type="button"], input[type="reset"], label, .cell{ cursor:none; }
/* Text fields keep their native I-beam — matches the same override the
   homepage makes for its own message textarea. */
input, textarea, select{ cursor:auto; }

/* Touch/coarse-pointer devices (phones, tablets): there's no real cursor
   to replace, so leave the browser's native behaviour alone entirely. */
@media (pointer:coarse){
  body, a, button, [role="button"], input[type="submit"], input[type="button"], input[type="reset"], label, .cell{ cursor:auto; }
}

#cursor{
  position:fixed; top:0; left:0; width:13px; height:13px; border-radius:50%;
  background:var(--red, #E2231C);
  border:1.5px solid transparent;
  box-shadow:0 0 10px rgba(var(--red-rgb, 226,35,28),0.55), 0 0 22px rgba(var(--red-rgb, 226,35,28),0.25);
  pointer-events:none; z-index:999999;
  opacity:0; transform:translate(-50%,-50%) scale(1);
  transition:width .25s var(--ease, cubic-bezier(.16,.84,.44,1)), height .25s var(--ease, cubic-bezier(.16,.84,.44,1)),
    background-color .25s var(--ease, cubic-bezier(.16,.84,.44,1)), border-color .25s var(--ease, cubic-bezier(.16,.84,.44,1)),
    box-shadow .25s var(--ease, cubic-bezier(.16,.84,.44,1)), opacity .25s ease, transform .18s var(--ease, cubic-bezier(.16,.84,.44,1));
}
#cursor.is-visible{ opacity:1; }
/* Grown (hover) state: a hollow ring so link/button text underneath stays legible. */
#cursor.grow{ width:42px; height:42px; background:transparent; border-color:var(--ink, #F4EFE4); box-shadow:none; }
#cursor.is-down{ transform:translate(-50%,-50%) scale(0.7); }
#cursor.grow.is-down{ transform:translate(-50%,-50%) scale(0.9); }
@media (pointer:coarse){ #cursor{ display:none; } }
@media (prefers-reduced-motion: reduce){ #cursor{ transition:opacity .25s ease; } }

/* Small contextual word riding beside the dot on hover targets that set a
   data-cursor="..." attribute (optional — safe to leave unused). */
#cursor .curs-label{
  position:absolute; left:20px; top:50%; transform:translateY(-50%);
  font-family:'Manrope', sans-serif; font-weight:800; font-size:10px;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink, #F4EFE4);
  text-shadow:0 1px 4px rgba(var(--bg-rgb, 0,0,0),0.9), 0 0 8px rgba(var(--bg-rgb, 0,0,0),0.6);
  white-space:nowrap; opacity:0; transition:opacity .2s ease;
}
#cursor.grow .curs-label.show{ opacity:1; }
