/* Expectedend themed cursor. Activates only once the module adds html.cur-on
   (fine pointers only), so touch devices and any failure keep the native cursor. */
@media (pointer: fine) {
  html.cur-on, html.cur-on * { cursor: none; }
  html.cur-on input, html.cur-on textarea, html.cur-on [contenteditable] { cursor: none; }
}
html[data-cursor="gold"] { --ee-cursor-accent: #e2b64d; --ee-cursor-glow: rgba(226, 182, 77, .55); }
html[data-cursor="water"] { --ee-cursor-accent: #38c6ec; --ee-cursor-deep: #0b7bae; --ee-cursor-light: #eafcff; --ee-cursor-glow: rgba(14, 168, 199, .5); }

.cur { position: fixed; left: 0; top: 0; z-index: 2147483000; pointer-events: none; will-change: transform; }
.cur.hide { opacity: 0; }
html.cost-open .cur { display: none !important; }

/* ---- gold: a fixed-gold arrow pointer. Same shape everywhere; hovering a button only
   brightens the glow, pressing gives a small dip. Never inherits a page's accent colour. ---- */
html[data-cursor="gold"] .cur { width: 0; height: 0; transition: opacity .18s; }
html[data-cursor="gold"] .cur::before { content: ''; position: absolute; left: -3px; top: -2.5px; width: 26px; height: 32px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2226%22%20height=%2232%22%20viewBox=%220%200%2026%2032%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%22%20y1=%220%22%20x2=%221%22%20y2=%221%22%3E%3Cstop%20offset=%220%22%20stop-color=%22%23fff1c2%22/%3E%3Cstop%20offset=%22.45%22%20stop-color=%22%23f2c75c%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23b98720%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d=%22M3%202.5%20L3%2024.5%20L8.6%2019.4%20L12.4%2028.2%20L16.6%2026.4%20L12.9%2017.7%20L20.4%2017.7%20Z%22%20fill=%22url(%23g)%22%20stroke=%22%232b1a00%22%20stroke-width=%221.6%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M5.2%206.2%20L5.2%2019.6%22%20stroke=%22%23fff8e0%22%20stroke-width=%221.1%22%20stroke-linecap=%22round%22%20opacity=%22.75%22/%3E%3C/svg%3E") no-repeat center / contain;
  transform-origin: 3px 2.5px; transform: scale(1);
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .35)) drop-shadow(0 0 5px var(--ee-cursor-glow));
  transition: transform .12s ease, filter .15s ease; }
html[data-cursor="gold"] .cur.hot::before { filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .35)) drop-shadow(0 0 9px var(--ee-cursor-glow)) drop-shadow(0 0 16px rgba(255, 227, 154, .5)); }
html[data-cursor="gold"] .cur.down::before { transform: scale(.88); }
html[data-cursor="gold"] .cur.hideText::before { left: -7px; top: -15px; width: 14px; height: 30px; background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2214%22%20height=%2230%22%20viewBox=%220%200%2014%2030%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%22%20y1=%220%22%20x2=%220%22%20y2=%221%22%3E%3Cstop%20offset=%220%22%20stop-color=%22%23fff1c2%22/%3E%3Cstop%20offset=%221%22%20stop-color=%22%23d9a63a%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d=%22M3%202.5h8M3%2027.5h8M7%202.5v25%22%20fill=%22none%22%20stroke=%22%232b1a00%22%20stroke-width=%224%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M3%202.5h8M3%2027.5h8M7%202.5v25%22%20fill=%22none%22%20stroke=%22url(%23g)%22%20stroke-width=%222%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E"); transform: none; }

/* ---- water: a teardrop whose tip is the pointer ---- */
html[data-cursor="water"] .cur { width: 0; height: 0; transition: opacity .18s; }
html[data-cursor="water"] .cur::before { content: ''; position: absolute; left: 0; top: 0; width: 18px; height: 18px;
  border-radius: 0 50% 50% 50%; transform-origin: 0 0; transform: rotate(45deg) scale(1);
  background: radial-gradient(circle at 30% 30%, var(--ee-cursor-light) 0, var(--ee-cursor-accent) 45%, var(--ee-cursor-deep) 100%);
  box-shadow: 0 5px 12px -2px var(--ee-cursor-glow), inset -2px -2px 4px rgba(4, 60, 90, .35), inset 1px 1px 2px rgba(255, 255, 255, .5);
  transition: transform .14s ease, box-shadow .14s ease; }
html[data-cursor="water"] .cur::after { content: ''; position: absolute; left: 3px; top: 11px; width: 5px; height: 7px; border-radius: 50%;
  background: rgba(255, 255, 255, .85); transform: rotate(-30deg); filter: blur(.4px); transition: transform .14s ease, opacity .14s; }
html[data-cursor="water"] .cur.hot::before { box-shadow: 0 8px 18px -3px var(--ee-cursor-glow), 0 0 0 5px rgba(56, 198, 236, .18), 0 0 16px rgba(56, 198, 236, .45), inset -2px -2px 4px rgba(4, 60, 90, .35), inset 1px 1px 2px rgba(255, 255, 255, .5); }
html[data-cursor="water"] .cur.down::before { transform: rotate(45deg) scale(.86); }
html[data-cursor="water"] .cur.hideText::before { width: 3px; height: 26px; border-radius: 2px; transform: rotate(0) translate(-1px, -13px); background: var(--ee-cursor-accent); box-shadow: 0 0 8px -1px var(--ee-cursor-accent); }
html[data-cursor="water"] .cur.hideText::after { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .cur, .cur::before, .cur::after { transition: none; } }
