/* Custom CSS Variables and base */
:root {
  --color-primary: #00A6FF;
  --color-accent: #FF00E5;
  --color-bg: #0A0A0F;
}

body {
  /* Hide actual cursor since we have a custom one */
  cursor: none;
}
/* Ensure standard elements also hide cursor, rely on js handling pointer events for interactive elements or we can just hide it globally */
a, button, input {
  cursor: none;
}

/* Background Noise overlay */
.bg-noise {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Blur effect for navbar */
.nav-scrolled {
  background: rgba(20, 20, 26, 0.8);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

/* Glow Utilities */
.glow-text {
  text-shadow: 0 0 20px rgba(0, 166, 255, 0.4);
}
.glow-text-accent {
  text-shadow: 0 0 20px rgba(255, 0, 229, 0.4);
}
.glow-border {
  box-shadow: 0 0 15px rgba(255, 0, 229, 0.5);
}
.glow-border-primary {
  box-shadow: 0 0 15px rgba(0, 166, 255, 0.5);
}
.glow-border-accent {
  box-shadow: 0 0 15px rgba(255, 0, 229, 0.5);
}
.glow-shadow {
  box-shadow: 0 10px 30px -10px rgba(0, 166, 255, 0.6);
}
.glow-shadow-primary {
  box-shadow: 0 10px 30px -10px rgba(0, 166, 255, 0.6);
}

/* 3D Cube Styles */
.perspective-1000 {
  perspective: 1000px;
}
.preserve-3d {
  transform-style: preserve-3d;
}
.face {
  position: absolute;
  width: 100%;
  height: 100%;
}
.front  { transform: rotateY(  0deg) translateZ(96px); }
.back   { transform: rotateY(180deg) translateZ(96px); }
.right  { transform: rotateY( 90deg) translateZ(96px); }
.left   { transform: rotateY(-90deg) translateZ(96px); }
.top    { transform: rotateX( 90deg) translateZ(96px); }
.bottom { transform: rotateX(-90deg) translateZ(96px); }

@media (min-width: 768px) {
    .front  { transform: rotateY(  0deg) translateZ(128px); }
    .back   { transform: rotateY(180deg) translateZ(128px); }
    .right  { transform: rotateY( 90deg) translateZ(128px); }
    .left   { transform: rotateY(-90deg) translateZ(128px); }
    .top    { transform: rotateX( 90deg) translateZ(128px); }
    .bottom { transform: rotateX(-90deg) translateZ(128px); }
}

/* Animations */
@keyframes pulse-slow {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}
.animate-pulse-slow {
  animation: pulse-slow 3s infinite ease-in-out;
}

@keyframes scroll-down {
  0% { transform: translateY(-100%); }
  100% { transform: translateY(200%); }
}
.animate-scroll-down {
  animation: scroll-down 2s infinite ease-in-out;
}

/* Custom Selection */
::selection {
  background: var(--color-primary);
  color: white;
}
