/* ══════════════════════════════════════════════════════════════════════
   KAMUI MAUSZEIGER: der normale Systemzeiger
   ══════════════════════════════════════════════════════════════════════

   Das Artison-Theme ersetzt den Mauszeiger durch einen selbstgebauten
   Punkt, der der Maus hinterherlaeuft.

   GEMESSEN (Chrome DevTools, index.html bei 1440x900):

       body   cursor: none
       html   cursor: none
       Links  cursor: none
       Elemente mit cursor:none .......... 352
       DIV.tw-cursor ..... 20x20, position fixed, z-index 2147483647
       DIV.play-cursor ... 0x0,  position fixed, z-index 9999999

   Das ist der Grund, warum die Maus nicht normal aussieht: der echte
   Zeiger ist ueberall ausgeblendet, und ein Div spielt ihn nach.

   Zwei Dinge sind noetig, eins allein reicht nicht:

     1. cursor:none ueberall zuruecknehmen. Nur body anzufassen bringt
        nichts, weil die Regel an 352 einzelnen Elementen haengt und
        die spezifischere Regel gewinnt.

     2. Die Nachbau-Elemente entfernen. Sonst laeuft ihr Punkt weiter
        neben dem echten Zeiger her - dann sieht man zwei.

   Diese Datei wird als LETZTE eingebunden, damit sie das Theme
   ueberschreibt. */

/* ── 1. Echten Zeiger zurueckholen ───────────────────────────────────
   Der Stern trifft auch Elemente, die spaeter dazukommen. Das ist hier
   noetig: das Theme setzt cursor:none per Klasse an sehr vielen
   Stellen, eine Liste davon waere sofort veraltet.

   MIT !important, und das ist keine Bequemlichkeit:
   Die erste Fassung stand ohne. Nachgemessen waren danach immer noch
   357 Elemente auf cursor:none, body und Links inklusive. Das Theme
   setzt die Regel an Klassen wie .brxe-section, und eine Klasse
   gewinnt gegen den Stern, egal wie spaet die Datei geladen wird.
   Spezifitaet schlaegt Reihenfolge.

   auto statt default: so entscheidet der Browser selbst, was passt.
   Ueber Text wird es ein Textcursor, ueber einem Link die Hand. */
*,
*::before,
*::after {
  cursor: auto !important;
}

/* body und html ausdruecklich. Nach der Sternregel blieb genau ein
   Element auf none uebrig, und zwar body: das Theme setzt es dort ueber
   eine Regel, die der Stern nicht schlaegt. Links waren zu dem Zeitpunkt
   schon korrekt auf pointer, nur die Flaeche dazwischen zeigte nichts. */
html,
body {
  cursor: auto !important;
}

/* Anklickbares bekommt die Hand. Das Theme hatte das mit cursor:none
   ebenfalls plattgemacht, deshalb hier ausdruecklich. */
a,
a *,
button,
button *,
[role="button"],
[role="button"] *,
label,
summary,
select,
.brxe-button,
.bricks-button,
input[type="submit"],
input[type="button"],
input[type="checkbox"],
input[type="radio"] {
  cursor: pointer !important;
}

/* Textfelder bekommen den Schreibcursor. */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="password"],
input[type="number"],
textarea {
  cursor: text !important;
}

/* Was ausgeschaltet ist, zeigt das auch. */
[disabled],
[aria-disabled="true"] {
  cursor: not-allowed !important;
}

/* ── 2. Den Nachbau entfernen ────────────────────────────────────────
   display:none statt nur unsichtbar: das Element haengt an einem
   Mausbewegungs-Ereignis, das bei jedem Pixel feuert. Ausgeblendet
   rechnet es weiter, ausgehaengt nicht mehr. */
.tw-cursor,
.play-cursor,
.tw-cursor *,
.play-cursor * {
  display: none !important;
}

/* Der Kopf und andere Bereiche setzen den Zeiger teils erneut auf none,
   wenn eine Klasse wie .cursor-hidden dazukommt. Diese Regel faengt die
   bekannten Faelle ab, ohne auf !important am Stern zu gehen: ein
   globales !important wuerde auch legitime Faelle brechen, etwa das
   Verschieben-Symbol in einer Bildergalerie. */
body.cursor-none,
body.tw-cursor-active,
html.cursor-none,
.cursor-hidden,
.cursor-none {
  cursor: auto !important;
}
