/**
 * FileEazy.ai - Standalone Busy Cursor Styles
 * Location: public/busy-cursor/busy-cursor.css
 * Completely independent module - does not touch existing project files.
 */

/* When page is busy, hide native pointer across all elements */
html.is-busy,
html.is-busy * {
  cursor: none !important;
}

/* Floating cursor wrapper */
#fe-busy-cursor,
#busy-cursor,
.fe-busy-cursor {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 2147483647; /* Maximum z-index to stay above modals/overlays */
  will-change: transform;
  display: none;
  box-sizing: border-box;
}

/* Every style class below sets display:flex !important, so the element
   needs an equally strong rule to stay hidden while the page isn't busy. */
html:not(.is-busy) #fe-busy-cursor {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  #fe-busy-cursor,
  #fe-busy-cursor *,
  #fe-busy-cursor::before,
  #fe-busy-cursor::after {
    animation-duration: 3s !important;
  }
}

/* Base image styling */
#fe-busy-cursor img,
#busy-cursor img,
.fe-busy-cursor img {
  object-fit: contain;
  display: block;
  user-select: none;
  pointer-events: none;
}

/* Sub-elements hidden by default */
.fe-cloud-svg-frame,
.fe-spinning-text {
  display: none;
}

/* ========================================================
   Style: Carved Cloud Spin (Static Cloud Frame + Spinning Cloud Inside)
   Outer edge is the carved cloud contour (No outer circle).
   The cloud image inside spins 360° vertically on the Y-axis.
   No spinning text.
   ======================================================== */
.style-carved-cloud-spin {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 32px;
  perspective: 500px;
  box-sizing: border-box;
}

.style-carved-cloud-spin .fe-cloud-svg-frame {
  display: block !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 32px;
  stroke: #3b82f6;
  stroke-width: 2.2;
  fill: rgba(11, 17, 32, 0.85);
  filter: drop-shadow(0 0 10px rgba(59, 130, 246, 0.55));
  pointer-events: none;
  z-index: 1;
}

.style-carved-cloud-spin .fe-cloud-img {
  display: block !important;
  width: 32px !important;
  height: 20px !important;
  position: relative;
  z-index: 2;
  animation: fe-coin-spin-smooth 1.4s linear infinite;
  transform-style: preserve-3d;
  backface-visibility: visible;
  will-change: transform, filter;
}

.style-carved-cloud-spin .fe-spinning-text {
  display: none !important;
}

/* ========================================================
   Style: Carved Cloud Edge + Spinning Text (fileeazy.com)
   Outer edge IS the carved cloud silhouette (No outer circle).
   The words 'fileeazy.com' spin 360° inside the cloud edge.
   ======================================================== */
.style-carved-cloud {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 32px;
  perspective: 450px;
  box-sizing: border-box;
}

.style-carved-cloud .fe-cloud-svg-frame {
  display: block !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 32px;
  stroke: #3b82f6;
  stroke-width: 2.2;
  fill: rgba(11, 17, 32, 0.88);
  filter: drop-shadow(0 0 10px rgba(59, 130, 246, 0.55));
  pointer-events: none;
}

.style-carved-cloud .fe-cloud-img {
  display: none !important;
}

.style-carved-cloud .fe-spinning-text {
  display: block !important;
  position: relative;
  z-index: 2;
  font-size: 7.5px;
  font-weight: 800;
  letter-spacing: -0.2px;
  color: #38bdf8;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  text-transform: lowercase;
  transform-style: preserve-3d;
  backface-visibility: visible;
  will-change: transform, filter;
  animation: fe-word-spin-y 1.4s linear infinite;
  user-select: none;
  white-space: nowrap;
  text-shadow: 0 0 6px rgba(56, 189, 248, 0.9);
}

/* ========================================================
   Style: Carved Logo Cloud + Spinning Text
   Uses the actual logo cloud graphic as the carved container.
   ======================================================== */
.style-carved-logo-text {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 32px;
  perspective: 450px;
}

.style-carved-logo-text .fe-cloud-svg-frame {
  display: block !important;
  position: absolute;
  top: 0;
  left: 0;
  width: 50px;
  height: 32px;
  stroke: #60a5fa;
  stroke-width: 1.5;
  fill: none;
  filter: drop-shadow(0 0 6px #3b82f6);
  pointer-events: none;
  z-index: 3;
}

.style-carved-logo-text .fe-cloud-img {
  width: 48px !important;
  height: 30px !important;
  opacity: 0.55;
  filter: drop-shadow(0 0 8px rgba(59, 130, 246, 0.4));
  z-index: 1;
}

.style-carved-logo-text .fe-spinning-text {
  display: block !important;
  position: absolute;
  z-index: 2;
  font-size: 7.5px;
  font-weight: 800;
  letter-spacing: -0.2px;
  color: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  text-transform: lowercase;
  transform-style: preserve-3d;
  backface-visibility: visible;
  will-change: transform, filter;
  animation: fe-word-spin-y 1.4s linear infinite;
  user-select: none;
  white-space: nowrap;
  text-shadow: 0 0 8px #38bdf8, 0 0 14px #2563eb;
}

@keyframes fe-word-spin-y {
  0% {
    transform: rotateY(0deg);
    filter: brightness(1);
  }
  25% {
    transform: rotateY(90deg);
    filter: brightness(0.65);
  }
  50% {
    transform: rotateY(180deg);
    filter: brightness(1);
  }
  75% {
    transform: rotateY(270deg);
    filter: brightness(0.65);
  }
  100% {
    transform: rotateY(360deg);
    filter: brightness(1);
  }
}

/* ========================================================
   Style 1: Cloud Edge Orbit (Borderless - Star traces the cloud silhouette itself)
   ======================================================== */
.style-cloud-star {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 24px;
}

.style-cloud-star img {
  width: 38px !important;
  height: 24px !important;
  filter: drop-shadow(0 2px 8px rgba(37, 99, 235, 0.35));
}

/* The 4-point AI Star physically tracing the cloud curves & lobes */
.style-cloud-star::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 13px;
  height: 13px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M12 0L14.8 9.2L24 12L14.8 14.8L12 24L9.2 14.8L0 12L9.2 9.2z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 0 6px #38bdf8) drop-shadow(0 0 2px #fff);
  /* Traces the exact pixel contour of the FileEazy cloud logo */
  offset-path: path("M 37.4 13.9 C 37.72 14.67, 37.85 15.48, 37.9 16.3 C 37.95 17.12, 37.92 18, 37.7 18.8 C 37.48 19.6, 37.08 20.43, 36.6 21.1 C 36.12 21.77, 35.52 22.35, 34.8 22.8 C 34.08 23.25, 33.2 23.62, 32.3 23.8 C 31.4 23.98, 30.27 23.88, 29.4 23.9 C 28.53 23.92, 27.8 23.9, 27.1 23.9 C 26.4 23.9, 25.78 23.9, 25.2 23.9 C 24.62 23.9, 24.12 23.9, 23.6 23.9 C 23.08 23.9, 22.58 23.9, 22.1 23.9 C 21.62 23.9, 21.15 23.9, 20.7 23.9 C 20.25 23.9, 19.83 23.9, 19.4 23.9 C 18.97 23.9, 18.55 23.9, 18.1 23.9 C 17.65 23.9, 17.17 23.9, 16.7 23.9 C 16.23 23.9, 15.82 23.9, 15.3 23.9 C 14.78 23.9, 14.2 23.9, 13.6 23.9 C 13 23.9, 12.4 23.9, 11.7 23.9 C 11 23.9, 10.27 23.9, 9.4 23.9 C 8.53 23.9, 7.47 24.03, 6.5 23.9 C 5.53 23.77, 4.43 23.53, 3.6 23.1 C 2.77 22.67, 2.05 21.98, 1.5 21.3 C 0.95 20.62, 0.55 19.82, 0.3 19 C 0.05 18.18, -0.1 17.25, 0 16.4 C 0.1 15.55, 0.45 14.7, 0.9 13.9 C 1.35 13.1, 1.9 12.23, 2.7 11.6 C 3.5 10.97, 5.2 10.68, 5.7 10.1 C 6.2 9.52, 5.55 8.72, 5.7 8.1 C 5.85 7.48, 6.2 6.9, 6.6 6.4 C 7 5.9, 7.52 5.43, 8.1 5.1 C 8.68 4.77, 9.4 4.48, 10.1 4.4 C 10.8 4.32, 11.62 4.53, 12.3 4.6 C 12.98 4.67, 13.73 5, 14.2 4.8 C 14.67 4.6, 14.75 3.82, 15.1 3.4 C 15.45 2.98, 15.85 2.65, 16.3 2.3 C 16.75 1.95, 17.28 1.58, 17.8 1.3 C 18.32 1.02, 18.83 0.8, 19.4 0.6 C 19.97 0.4, 20.58 0.2, 21.2 0.1 C 21.82 0, 22.47 -0.02, 23.1 0 C 23.73 0.02, 24.38 0.05, 25 0.2 C 25.62 0.35, 26.2 0.63, 26.8 0.9 C 27.4 1.17, 28.05 1.43, 28.6 1.8 C 29.15 2.17, 29.65 2.62, 30.1 3.1 C 30.55 3.58, 30.97 4.13, 31.3 4.7 C 31.63 5.27, 31.9 5.88, 32.1 6.5 C 32.3 7.12, 32.23 7.82, 32.5 8.4 C 32.77 8.98, 33.12 9.45, 33.7 10 C 34.28 10.55, 35.38 11.05, 36 11.7 C 36.62 12.35, 37.08 13.13, 37.4 13.9 Z");
  offset-rotate: 0deg;
  animation: fe-star-trace 2.4s linear infinite;
}

@keyframes fe-star-trace {
  0%   { offset-distance: 0%; }
  100% { offset-distance: 100%; }
}

/* ========================================================
   Style 2: Neon Cloud Outline + Star (Subtle glowing outline tracing the cloud)
   ======================================================== */
.style-cloud-neon {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 24px;
}

.style-cloud-neon img {
  width: 38px !important;
  height: 24px !important;
  filter: drop-shadow(0 0 4px rgba(59, 130, 246, 0.6));
}

.style-cloud-neon::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 38px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38 24'%3E%3Cpath d='M 37.4 13.9 C 37.72 14.67, 37.85 15.48, 37.9 16.3 C 37.95 17.12, 37.92 18, 37.7 18.8 C 37.48 19.6, 37.08 20.43, 36.6 21.1 C 36.12 21.77, 35.52 22.35, 34.8 22.8 C 34.08 23.25, 33.2 23.62, 32.3 23.8 C 31.4 23.98, 30.27 23.88, 29.4 23.9 C 28.53 23.92, 27.8 23.9, 27.1 23.9 C 26.4 23.9, 25.78 23.9, 25.2 23.9 C 24.62 23.9, 24.12 23.9, 23.6 23.9 C 23.08 23.9, 22.58 23.9, 22.1 23.9 C 21.62 23.9, 21.15 23.9, 20.7 23.9 C 20.25 23.9, 19.83 23.9, 19.4 23.9 C 18.97 23.9, 18.55 23.9, 18.1 23.9 C 17.65 23.9, 17.17 23.9, 16.7 23.9 C 16.23 23.9, 15.82 23.9, 15.3 23.9 C 14.78 23.9, 14.2 23.9, 13.6 23.9 C 13 23.9, 12.4 23.9, 11.7 23.9 C 11 23.9, 10.27 23.9, 9.4 23.9 C 8.53 23.9, 7.47 24.03, 6.5 23.9 C 5.53 23.77, 4.43 23.53, 3.6 23.1 C 2.77 22.67, 2.05 21.98, 1.5 21.3 C 0.95 20.62, 0.55 19.82, 0.3 19 C 0.05 18.18, -0.1 17.25, 0 16.4 C 0.1 15.55, 0.45 14.7, 0.9 13.9 C 1.35 13.1, 1.9 12.23, 2.7 11.6 C 3.5 10.97, 5.2 10.68, 5.7 10.1 C 6.2 9.52, 5.55 8.72, 5.7 8.1 C 5.85 7.48, 6.2 6.9, 6.6 6.4 C 7 5.9, 7.52 5.43, 8.1 5.1 C 8.68 4.77, 9.4 4.48, 10.1 4.4 C 10.8 4.32, 11.62 4.53, 12.3 4.6 C 12.98 4.67, 13.73 5, 14.2 4.8 C 14.67 4.6, 14.75 3.82, 15.1 3.4 C 15.45 2.98, 15.85 2.65, 16.3 2.3 C 16.75 1.95, 17.28 1.58, 17.8 1.3 C 18.32 1.02, 18.83 0.8, 19.4 0.6 C 19.97 0.4, 20.58 0.2, 21.2 0.1 C 21.82 0, 22.47 -0.02, 23.1 0 C 23.73 0.02, 24.38 0.05, 25 0.2 C 25.62 0.35, 26.2 0.63, 26.8 0.9 C 27.4 1.17, 28.05 1.43, 28.6 1.8 C 29.15 2.17, 29.65 2.62, 30.1 3.1 C 30.55 3.58, 30.97 4.13, 31.3 4.7 C 31.63 5.27, 31.9 5.88, 32.1 6.5 C 32.3 7.12, 32.23 7.82, 32.5 8.4 C 32.77 8.98, 33.12 9.45, 33.7 10 C 34.28 10.55, 35.38 11.05, 36 11.7 C 36.62 12.35, 37.08 13.13, 37.4 13.9 Z' fill='none' stroke='%2338bdf8' stroke-width='1.2' stroke-dasharray='2 2' opacity='0.7'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
}

.style-cloud-neon::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2338bdf8'%3E%3Cpath d='M12 0L14.8 9.2L24 12L14.8 14.8L12 24L9.2 14.8L0 12L9.2 9.2z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  filter: drop-shadow(0 0 6px #38bdf8) drop-shadow(0 0 2px #fff);
  offset-path: path("M 37.4 13.9 C 37.72 14.67, 37.85 15.48, 37.9 16.3 C 37.95 17.12, 37.92 18, 37.7 18.8 C 37.48 19.6, 37.08 20.43, 36.6 21.1 C 36.12 21.77, 35.52 22.35, 34.8 22.8 C 34.08 23.25, 33.2 23.62, 32.3 23.8 C 31.4 23.98, 30.27 23.88, 29.4 23.9 C 28.53 23.92, 27.8 23.9, 27.1 23.9 C 26.4 23.9, 25.78 23.9, 25.2 23.9 C 24.62 23.9, 24.12 23.9, 23.6 23.9 C 23.08 23.9, 22.58 23.9, 22.1 23.9 C 21.62 23.9, 21.15 23.9, 20.7 23.9 C 20.25 23.9, 19.83 23.9, 19.4 23.9 C 18.97 23.9, 18.55 23.9, 18.1 23.9 C 17.65 23.9, 17.17 23.9, 16.7 23.9 C 16.23 23.9, 15.82 23.9, 15.3 23.9 C 14.78 23.9, 14.2 23.9, 13.6 23.9 C 13 23.9, 12.4 23.9, 11.7 23.9 C 11 23.9, 10.27 23.9, 9.4 23.9 C 8.53 23.9, 7.47 24.03, 6.5 23.9 C 5.53 23.77, 4.43 23.53, 3.6 23.1 C 2.77 22.67, 2.05 21.98, 1.5 21.3 C 0.95 20.62, 0.55 19.82, 0.3 19 C 0.05 18.18, -0.1 17.25, 0 16.4 C 0.1 15.55, 0.45 14.7, 0.9 13.9 C 1.35 13.1, 1.9 12.23, 2.7 11.6 C 3.5 10.97, 5.2 10.68, 5.7 10.1 C 6.2 9.52, 5.55 8.72, 5.7 8.1 C 5.85 7.48, 6.2 6.9, 6.6 6.4 C 7 5.9, 7.52 5.43, 8.1 5.1 C 8.68 4.77, 9.4 4.48, 10.1 4.4 C 10.8 4.32, 11.62 4.53, 12.3 4.6 C 12.98 4.67, 13.73 5, 14.2 4.8 C 14.67 4.6, 14.75 3.82, 15.1 3.4 C 15.45 2.98, 15.85 2.65, 16.3 2.3 C 16.75 1.95, 17.28 1.58, 17.8 1.3 C 18.32 1.02, 18.83 0.8, 19.4 0.6 C 19.97 0.4, 20.58 0.2, 21.2 0.1 C 21.82 0, 22.47 -0.02, 23.1 0 C 23.73 0.02, 24.38 0.05, 25 0.2 C 25.62 0.35, 26.2 0.63, 26.8 0.9 C 27.4 1.17, 28.05 1.43, 28.6 1.8 C 29.15 2.17, 29.65 2.62, 30.1 3.1 C 30.55 3.58, 30.97 4.13, 31.3 4.7 C 31.63 5.27, 31.9 5.88, 32.1 6.5 C 32.3 7.12, 32.23 7.82, 32.5 8.4 C 32.77 8.98, 33.12 9.45, 33.7 10 C 34.28 10.55, 35.38 11.05, 36 11.7 C 36.62 12.35, 37.08 13.13, 37.4 13.9 Z");
  offset-rotate: 0deg;
  animation: fe-star-trace 2.4s linear infinite;
}

/* ========================================================
   Style 3: Coin Spin (Thicker Ring, Butter-Smooth 3D Spin)
   ======================================================== */
.style-coin-flip {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 3.5px solid #3b82f6; /* Thicker, bolder coin ring */
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow: 0 0 16px rgba(59, 130, 246, 0.45), inset 0 0 6px rgba(59, 130, 246, 0.3);
  background: rgba(9, 13, 22, 0.75);
  perspective: 500px; /* Natural 3D depth */
}

.style-coin-flip img {
  width: 27px !important;
  height: 17px !important;
  animation: fe-coin-spin-smooth 1.4s linear infinite; /* Seamless, continuous rotation */
  transform-style: preserve-3d;
  backface-visibility: visible;
  will-change: transform, filter;
}

@keyframes fe-coin-spin-smooth {
  0% {
    transform: rotateY(0deg);
    filter: brightness(1);
  }
  25% {
    transform: rotateY(90deg);
    filter: brightness(0.82);
  }
  50% {
    transform: rotateY(180deg);
    filter: brightness(1);
  }
  75% {
    transform: rotateY(270deg);
    filter: brightness(0.82);
  }
  100% {
    transform: rotateY(360deg);
    filter: brightness(1);
  }
}

/* ========================================================
   Style 4: Orbiting Halo Spinner
   ======================================================== */
.style-orbit {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.style-orbit img {
  width: 26px !important;
  height: 16px !important;
}

.style-orbit::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 44px;
  height: 44px;
  border: 3px solid rgba(59, 130, 246, 0.25);
  border-top-color: #3b82f6;
  border-radius: 50%;
  box-sizing: border-box;
  animation: fe-orbit-spin 0.85s linear infinite;
}

@keyframes fe-orbit-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ========================================================
   Style 5: Breathing Pulse & Glow
   ======================================================== */
.style-pulse {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.style-pulse img {
  width: 32px !important;
  height: 20px !important;
  animation: fe-logo-pulse 1.15s ease-in-out infinite;
}

@keyframes fe-logo-pulse {
  0%, 100% {
    transform: scale(0.92);
    filter: drop-shadow(0 0 2px rgba(59, 130, 246, 0.3));
    opacity: 0.85;
  }
  50% {
    transform: scale(1.2);
    filter: drop-shadow(0 0 10px rgba(59, 130, 246, 0.85));
    opacity: 1;
  }
}

/* ========================================================
   Style 6: Continuous 360° Spin
   ======================================================== */
.style-spin {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.style-spin img {
  width: 30px !important;
  height: 19px !important;
  animation: fe-logo-spin 1s linear infinite;
}

@keyframes fe-logo-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ========================================================
   Style 7: Hourglass Flip & Pause
   ======================================================== */
.style-flip {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.style-flip img {
  width: 30px !important;
  height: 19px !important;
  animation: fe-logo-flip 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes fe-logo-flip {
  0%   { transform: rotate(0deg); }
  40%  { transform: rotate(180deg); }
  50%  { transform: rotate(180deg); }
  90%  { transform: rotate(360deg); }
  100% { transform: rotate(360deg); }
}

/* ========================================================
   Style 8: Tilt & Wobble
   ======================================================== */
.style-wobble {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.style-wobble img {
  width: 30px !important;
  height: 19px !important;
  animation: fe-logo-wobble 0.85s ease-in-out infinite alternate;
}

@keyframes fe-logo-wobble {
  from { transform: translateY(-3px) rotate(-15deg); }
  to   { transform: translateY(3px) rotate(15deg); }
}
