/* UI Wand: magic-wand cursor. Apollo spec t_fb36c39a, implemented by Odysseus t_bbfd4264.
   Static CSS cursor only -- no custom DOM cursor element, no rAF loop. Hotspot (3,3) in
   every theme, identical click point across style switches. Loaded by the parent document
   AND every hero document (heroes/*.html) so the cursor never drops at the iframe boundary.
   Desktop/mouse/pen only: on (hover:none) or (pointer:coarse) devices the `cursor` property
   is ignored by the UA for the active pointer, so no extra gating is needed here. */
html{ cursor:url("/assets/wand/cursor-modern.svg") 3 3, auto; }
html[data-theme="modern"]{      cursor:url("/assets/wand/cursor-modern.svg") 3 3, auto; }
html[data-theme="skeuomorph"]{  cursor:url("/assets/wand/cursor-skeuomorph.svg") 3 3, auto; }
html[data-theme="extrude"]{     cursor:url("/assets/wand/cursor-extrude.svg") 3 3, auto; }
html[data-theme="primitives"]{  cursor:url("/assets/wand/cursor-primitives.svg") 3 3, auto; }
html[data-theme="gel"]{         cursor:url("/assets/wand/cursor-gel.svg") 3 3, auto; }
html[data-theme="frost"]{       cursor:url("/assets/wand/cursor-frost.svg") 3 3, auto; }
html[data-theme="retro"]{       cursor:url("/assets/wand/cursor-retro.svg") 3 3, auto; }
/* heroes/bench.html (Modern <-> Classic iPhone/Skeuomorph tab) uses the legacy
   data-bdils-theme attribute instead of data-theme -- mirror the two rules it needs. */
html[data-bdils-theme="modern"]{      cursor:url("/assets/wand/cursor-modern.svg") 3 3, auto; }
html[data-bdils-theme="skeuomorph"]{  cursor:url("/assets/wand/cursor-skeuomorph.svg") 3 3, auto; }

/* dust particle layer: pointer-events:none by construction, sits above page content but
   never intercepts anything. z-index matches hero-cursor.js's #bdc tier so the two
   decorative layers never fight for stacking order. */
#bd-dust{ position:fixed; inset:0; pointer-events:none; z-index:2147483001; contain:layout style; }
#bd-dust .p{ position:absolute; will-change:transform,opacity; pointer-events:none; }
