/* Niconne font helper */
   .font-niconne{font-family:'Niconne',cursive;}

/* Creative custom cursor styles */
    body.use-custom-cursor { cursor: none; }
    .custom-cursor, .cursor-follower { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); transition: transform .15s ease, opacity .18s ease; }
    .custom-cursor { width: 10px; height: 10px; border-radius: 9999px; backdrop-filter: invert(100%); box-shadow: 0 3px 10px rgba(0,0,0,0.25); }
    .cursor-follower { width: 44px; height: 44px; border-radius: 9999px; border: 2px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03); position: fixed; overflow: visible; }
    .cursor-follower::before{ content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid rgba(143, 102, 255, 0.9); transform: scale(1.3); opacity: 0.85; pointer-events: none; }
    .custom-cursor.hover { transform: translate(-50%, -50%) scale(1.8); backdrop-filter: invert(100%); }
    .cursor-follower.hover { transform: translate(-50%, -50%) scale(1.2); }
    .cursor-follower.hover::before{ border-color: #2cc931; transform: scale(1.25); }
    @media (hover: none), (pointer: coarse) { body.use-custom-cursor { cursor: auto; } .custom-cursor, .cursor-follower { display: none; } }

   /* Lottie background container */
   .lottie-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
   .lottie-bg svg { width: 100%; height: 100%; display: block; }