/* ================================================================
   RPG DAGGER CURSOR — cursor.css
   Hotspot: blade tip at (4, 4) — top-left of the 32×32 SVG
   Dagger points top-left (mirrored from original right-pointing)
   Excluded: touch devices (@media pointer:coarse) & text inputs
   ================================================================ */

/* ── CURSOR DATA URIS ─────────────────────────────────────────── */
:root {
  --cur-default : url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczMicgaGVpZ2h0PSczMicgdmlld0JveD0nMCAwIDMyIDMyJz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0nYicgeDE9JzAnIHkxPScwJyB4Mj0nMScgeTI9JzEnPgo8c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyNFOEU4RTgnLz4KPHN0b3Agb2Zmc2V0PScuNDUnIHN0b3AtY29sb3I9JyNDMEMwQzAnLz4KPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjODg4ODg4Jy8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0naCcgeDE9JzEnIHkxPScwJyB4Mj0nMCcgeTI9JzEnPgo8c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyMzYzNjM2MnLz4KPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjMTgxODE4Jy8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPHBvbHlnb24gcG9pbnRzPSczLDUgMTMsMTEgMTAsMTQnIGZpbGw9JyMwMDAwMDAnIG9wYWNpdHk9Jy4zOCcvPgo8cG9seWdvbiBwb2ludHM9JzQsNCAxMy41LDEwLjUgMTAuNSwxMy41JyBmaWxsPSd1cmwoI2IpJy8+Cjxwb2x5Z29uIHBvaW50cz0nNCw0IDEzLjUsMTAuNSAxMC41LDEzLjUnIGZpbGw9J25vbmUnIHN0cm9rZT0nIzQ0NDQ0NCcgc3Ryb2tlLXdpZHRoPScuNycvPgo8bGluZSB4MT0nNScgeTE9JzUnIHgyPScxMicgeTI9JzEyJyBzdHJva2U9JyNFRUVFRUUnIHN0cm9rZS13aWR0aD0nLjU1JyBvcGFjaXR5PScuNjUnLz4KPGxpbmUgeDE9JzE4JyB5MT0nMTInIHgyPScxMicgeTI9JzE4JyBzdHJva2U9JyMxMTExMTEnIHN0cm9rZS13aWR0aD0nMy40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnLz4KPGxpbmUgeDE9JzE4JyB5MT0nMTInIHgyPScxMicgeTI9JzE4JyBzdHJva2U9JyM1MDUwNTAnIHN0cm9rZS13aWR0aD0nLjgnLz4KPHBvbHlnb24gcG9pbnRzPScxNiwxNCAxNCwxNiAyMSwyMyAyMywyMScgZmlsbD0ndXJsKCNoKScgc3Ryb2tlPScjMTExMTExJyBzdHJva2Utd2lkdGg9Jy41Jy8+CjxjaXJjbGUgY3g9JzI0JyBjeT0nMjQnIHI9JzIuMycgZmlsbD0nIzJhMmEyYScgc3Ryb2tlPScjMTExMTExJyBzdHJva2Utd2lkdGg9Jy41Jy8+CjxjaXJjbGUgY3g9JzI0JyBjeT0nMjQnIHI9JzEuMScgZmlsbD0nI0M4OTAwRScvPgo8Y2lyY2xlIGN4PScyNC43JyBjeT0nMjMuMycgcj0nLjQyJyBmaWxsPScjRkZENzAwJyBvcGFjaXR5PScuODInLz4KPC9zdmc+Cg==") 4 4, auto;
  --cur-pointer : url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczMicgaGVpZ2h0PSczMicgdmlld0JveD0nMCAwIDMyIDMyJz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0nYicgeDE9JzAnIHkxPScwJyB4Mj0nMScgeTI9JzEnPgo8c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyNFOEU4RTgnLz4KPHN0b3Agb2Zmc2V0PScuNDUnIHN0b3AtY29sb3I9JyNDMEMwQzAnLz4KPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjODg4ODg4Jy8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0naCcgeDE9JzEnIHkxPScwJyB4Mj0nMCcgeTI9JzEnPgo8c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyMzYzNjM2MnLz4KPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjMTgxODE4Jy8+CjwvbGluZWFyR3JhZGllbnQ+CjxmaWx0ZXIgaWQ9J2dsb3cnIHg9Jy00MCUnIHk9Jy00MCUnIHdpZHRoPScxODAlJyBoZWlnaHQ9JzE4MCUnPgo8ZmVEcm9wU2hhZG93IGR4PScwJyBkeT0nMCcgc3RkRGV2aWF0aW9uPScyJyBmbG9vZC1jb2xvcj0nI0ZGQjMwMCcgZmxvb2Qtb3BhY2l0eT0nMScvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8ZyBmaWx0ZXI9J3VybCgjZ2xvdyknPgo8cG9seWdvbiBwb2ludHM9JzQsNCAxMy41LDEwLjUgMTAuNSwxMy41JyBmaWxsPSd1cmwoI2IpJyBzdHJva2U9JyM0NDQ0NDQnIHN0cm9rZS13aWR0aD0nLjcnLz4KPGxpbmUgeDE9JzUnIHkxPSc1JyB4Mj0nMTInIHkyPScxMicgc3Ryb2tlPScjRUVFRUVFJyBzdHJva2Utd2lkdGg9Jy41NScgb3BhY2l0eT0nLjY1Jy8+CjxsaW5lIHgxPScxOCcgeTE9JzEyJyB4Mj0nMTInIHkyPScxOCcgc3Ryb2tlPScjMTExMTExJyBzdHJva2Utd2lkdGg9JzMuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJy8+CjxsaW5lIHgxPScxOCcgeTE9JzEyJyB4Mj0nMTInIHkyPScxOCcgc3Ryb2tlPScjNTA1MDUwJyBzdHJva2Utd2lkdGg9Jy44Jy8+Cjxwb2x5Z29uIHBvaW50cz0nMTYsMTQgMTQsMTYgMjEsMjMgMjMsMjEnIGZpbGw9J3VybCgjaCknIHN0cm9rZT0nIzExMTExMScgc3Ryb2tlLXdpZHRoPScuNScvPgo8Y2lyY2xlIGN4PScyNCcgY3k9JzI0JyByPScyLjMnIGZpbGw9JyMyYTJhMmEnIHN0cm9rZT0nIzExMTExMScgc3Ryb2tlLXdpZHRoPScuNScvPgo8Y2lyY2xlIGN4PScyNCcgY3k9JzI0JyByPScxLjEnIGZpbGw9JyNDODkwMEUnLz4KPGNpcmNsZSBjeD0nMjQuNycgY3k9JzIzLjMnIHI9Jy40MicgZmlsbD0nI0ZGRDcwMCcgb3BhY2l0eT0nLjgyJy8+CjwvZz4KPC9zdmc+Cg==") 4 4, pointer;
  --cur-danger  : url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczMicgaGVpZ2h0PSczMicgdmlld0JveD0nMCAwIDMyIDMyJz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0nYicgeDE9JzAnIHkxPScwJyB4Mj0nMScgeTI9JzEnPgo8c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyNFOEU4RTgnLz4KPHN0b3Agb2Zmc2V0PScuNDUnIHN0b3AtY29sb3I9JyNDMEMwQzAnLz4KPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjODg4ODg4Jy8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0naCcgeDE9JzEnIHkxPScwJyB4Mj0nMCcgeTI9JzEnPgo8c3RvcCBvZmZzZXQ9JzAnIHN0b3AtY29sb3I9JyMzYzNjM2MnLz4KPHN0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPScjMTgxODE4Jy8+CjwvbGluZWFyR3JhZGllbnQ+CjxmaWx0ZXIgaWQ9J2dsb3cnIHg9Jy00MCUnIHk9Jy00MCUnIHdpZHRoPScxODAlJyBoZWlnaHQ9JzE4MCUnPgo8ZmVEcm9wU2hhZG93IGR4PScwJyBkeT0nMCcgc3RkRGV2aWF0aW9uPScyLjUnIGZsb29kLWNvbG9yPScjRkYyMjAwJyBmbG9vZC1vcGFjaXR5PScxJy8+CjwvZmlsdGVyPgo8L2RlZnM+CjxnIGZpbHRlcj0ndXJsKCNnbG93KSc+Cjxwb2x5Z29uIHBvaW50cz0nNCw0IDEzLjUsMTAuNSAxMC41LDEzLjUnIGZpbGw9J3VybCgjYiknIHN0cm9rZT0nIzQ0NDQ0NCcgc3Ryb2tlLXdpZHRoPScuNycvPgo8bGluZSB4MT0nNScgeTE9JzUnIHgyPScxMicgeTI9JzEyJyBzdHJva2U9JyNFRUVFRUUnIHN0cm9rZS13aWR0aD0nLjU1JyBvcGFjaXR5PScuNjUnLz4KPGxpbmUgeDE9JzE4JyB5MT0nMTInIHgyPScxMicgeTI9JzE4JyBzdHJva2U9JyMxMTExMTEnIHN0cm9rZS13aWR0aD0nMy40JyBzdHJva2UtbGluZWNhcD0ncm91bmQnLz4KPGxpbmUgeDE9JzE4JyB5MT0nMTInIHgyPScxMicgeTI9JzE4JyBzdHJva2U9JyM1MDUwNTAnIHN0cm9rZS13aWR0aD0nLjgnLz4KPHBvbHlnb24gcG9pbnRzPScxNiwxNCAxNCwxNiAyMSwyMyAyMywyMScgZmlsbD0ndXJsKCNoKScgc3Ryb2tlPScjMTExMTExJyBzdHJva2Utd2lkdGg9Jy41Jy8+CjxjaXJjbGUgY3g9JzI0JyBjeT0nMjQnIHI9JzIuMycgZmlsbD0nIzJhMmEyYScgc3Ryb2tlPScjMTExMTExJyBzdHJva2Utd2lkdGg9Jy41Jy8+CjxjaXJjbGUgY3g9JzI0JyBjeT0nMjQnIHI9JzEuMScgZmlsbD0nI0M4OTAwRScvPgo8Y2lyY2xlIGN4PScyNC43JyBjeT0nMjMuMycgcj0nLjQyJyBmaWxsPScjRkZENzAwJyBvcGFjaXR5PScuODInLz4KPC9nPgo8L3N2Zz4K") 4 4, not-allowed;
}

/* ── APPLY CURSORS ────────────────────────────────────────────── */

/* Default dagger on everything — !important beats cursor:pointer/default
   in rpg-style.css and mediaqueries.css without touching those files    */
*:not(input):not(textarea):not(select):not([contenteditable]) {
  cursor: var(--cur-default) !important;
}

/* Pointer-state dagger (amber glow) on all interactive elements */
a,
button,
label[for],
[role="button"],
.zm-item,
.zm-back,
.card,
.zone,
.forge-return,
.nav-link-rpg,
.rpg-link,
.rpg-btn,
.rpg-btn-outline,
.nav-map-btn,
.back-to-map,
.armory-tab,
.project-card,
.tool-card,
.skill-tag,
.tab-btn,
.filter-btn,
.inv-slot {
  cursor: var(--cur-pointer) !important;
}

/* Red glow on the locked Forge door / lock assembly */
.forge-lock-wrap,
.forge-lock-assembly,
[data-locked="true"] {
  cursor: var(--cur-danger) !important;
}

/* Preserve native text cursor on inputs — never override the I-beam */
input,
textarea,
select,
[contenteditable],
[contenteditable="true"] {
  cursor: text !important;
}

/* ── MOBILE EXCLUSION ─────────────────────────────────────────── */
/* Touch devices have no pointer — restore everything to auto     */
@media (pointer: coarse) {
  *:not(input):not(textarea):not(select):not([contenteditable]),
  a, button, label, [role="button"],
  .zm-item, .zm-back, .card, .zone,
  .forge-lock-wrap, .forge-lock-assembly,
  [data-locked="true"],
  .forge-return, .nav-link-rpg, .rpg-link,
  .rpg-btn, .rpg-btn-outline, .nav-map-btn, .back-to-map,
  .armory-tab, .project-card, .tool-card, .skill-tag,
  .tab-btn, .filter-btn, .inv-slot {
    cursor: auto !important;
  }
}

/* ================================================================
   RUNE BURST — click effect
   ================================================================ */

/* Element injected by cursor.js on each click */
.rune-burst {
  position: fixed;
  pointer-events: none;           /* never intercept subsequent clicks  */
  z-index: 99999;
  font-family: 'Cinzel', 'Palatino Linotype', 'Book Antiqua', serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  color: #FFD700;
  text-shadow:
    0 0 6px  #FFD700,
    0 0 14px #FFA500,
    0 0 26px rgba(255, 165, 0, .55);
  /* Centre the glyph on the exact click coordinate */
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  animation: rune-float 800ms ease-out forwards;
  user-select: none;
  -webkit-user-select: none;
}

@keyframes rune-float {
  0% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, calc(-50% - 46px)) scale(1.4);
  }
}
