/* Native crystal cursors retain precise hit testing and ordinary text selection. */
@media (hover:hover) and (pointer:fine) {
  body { cursor:url('/assets/crystal-cursor.svg') 3 2, auto; }
  a,button,summary,select,label[for],input[type=checkbox],input[type=radio],input[type=file],input[type=file]::file-selector-button,[role=button] { cursor:url('/assets/crystal-link.svg') 3 2, pointer; }
  input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,[contenteditable=true] { cursor:text; }
  button:disabled,input:disabled,select:disabled { cursor:not-allowed; }
}
.illusia-touch-spark { position:fixed;left:0;top:0;width:64px;height:64px;margin:-32px;pointer-events:none;z-index:2147483647;contain:layout style; }
.illusia-touch-spark::before { content:'';position:absolute;inset:12px;border:2px solid #b783ff;border-radius:50%;box-shadow:0 0 12px #702bff80,inset 0 0 8px #702bff40;animation:illusia-ring .55s ease-out both; }
.illusia-touch-spark::after { content:'';position:absolute;left:26px;top:26px;width:12px;height:12px;background:#ffcf32;clip-path:polygon(50% 0,63% 37%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 37%);animation:illusia-glint .55s ease-out both; }
.illusia-touch-spark i { position:absolute;left:29px;top:29px;width:6px;height:6px;background:#b783ff;box-shadow:0 0 6px #702bff;border-radius:2px;animation:illusia-dust .55s ease-out both; }
@keyframes illusia-ring { from { transform:scale(.3);opacity:1; } to { transform:scale(1.5);opacity:0; } }
@keyframes illusia-glint { 0% { transform:scale(.3) rotate(0);opacity:1; } 45% { opacity:1; } 100% { transform:scale(1.3) rotate(90deg);opacity:0; } }
@keyframes illusia-dust { from { transform:translate(0,0) rotate(0);opacity:1; } to { transform:translate(var(--spark-x),var(--spark-y)) rotate(90deg);opacity:0; } }
@media (prefers-reduced-motion:reduce) { .illusia-touch-spark { display:none; } }
