/* Cursor Studio FX — isolated presentation layer */
.csfx-canvas { position: fixed; inset: 0; display: block; pointer-events: none !important; z-index: 2147483000; user-select: none; }
.csfx-cursor { position: fixed; top: 0; left: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: var(--csfx-size, 40px); height: var(--csfx-size, 40px); pointer-events: none !important; user-select: none; z-index: 2147483001; opacity: 0; transition: opacity 120ms ease; will-change: transform; transform-origin: center; }
.csfx-cursor.csfx-visible { opacity: 1; }
.csfx-type-dot { border-radius: 50%; width: calc(var(--csfx-size, 40px) * .34); height: calc(var(--csfx-size, 40px) * .34); background: var(--csfx-color, #d82046); box-shadow: 0 0 12px 2px var(--csfx-color, #d82046); }
.csfx-type-ring { border-radius: 50%; border: 2px solid var(--csfx-color, #d82046); box-shadow: 0 0 12px -2px var(--csfx-color, #d82046), inset 0 0 12px -6px var(--csfx-color, #d82046); }
.csfx-type-ring::after { content: ''; width: 5px; height: 5px; background: var(--csfx-color, #d82046); border-radius: 50%; }
.csfx-type-emoji { font-family: 'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif; font-size: calc(var(--csfx-size, 40px) * .78); line-height: 1; white-space: nowrap; }
.csfx-type-image img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
@media (hover: hover) and (pointer: fine) {
  html.csfx-hide-native, html.csfx-hide-native body, html.csfx-hide-native body a, html.csfx-hide-native body button, html.csfx-hide-native body [role="button"] { cursor: none !important; }
  html.csfx-hide-native body input, html.csfx-hide-native body select, html.csfx-hide-native body option { cursor: auto !important; }
  html.csfx-hide-native body input[type="text"], html.csfx-hide-native body input[type="search"], html.csfx-hide-native body input[type="email"], html.csfx-hide-native body input[type="url"], html.csfx-hide-native body input[type="password"], html.csfx-hide-native body input[type="number"], html.csfx-hide-native body textarea, html.csfx-hide-native body [contenteditable] { cursor: text !important; }
}
.csfx-preview-canvas { position: absolute; z-index: 7; }
.csfx-preview-cursor { position: absolute; z-index: 8; }
@media (prefers-reduced-motion: reduce) { .csfx-cursor { transition: none; } }
