    /* Custom Cursor Styles */
    * { cursor: none !important; }
    .custom-cursor {
      position: fixed;
      top: 0; left: 0;
      pointer-events: none;
      z-index: 99999;
      transform: translate(-50%, -50%);
    }
    .cursor-dot {
      width: 12px;
      height: 12px;
      background: #00f5ff;
      border-radius: 50%;
      box-shadow: 0 0 20px #00f5ff, 0 0 40px #00f5ff;
      animation: pulse 2s infinite;
    }
    .cursor-ring {
      position: absolute;
      top: 50%; left: 50%;
      width: 40px;
      height: 40px;
      border: 2px solid #00f5ff;
      border-radius: 50%;
      transform: translate(-50%, -50%);
      opacity: 0;
      animation: ripple 2s infinite;
    }
    a:hover ~ .custom-cursor .cursor-dot,
    button:hover ~ .custom-cursor .cursor-dot,
    [onclick]:hover ~ .custom-cursor .cursor-dot {
      transform: scale(1.6);
      background: white;
      box-shadow: 0 0 30px white;
    }
    a:hover ~ .custom-cursor .cursor-ring,
    button:hover ~ .custom-cursor .cursor-ring,
    [onclick]:hover ~ .custom-cursor .cursor-ring {
      animation-duration: 0.6s;
    }
    @keyframes pulse {
      0%, 100% { opacity: 0.8; }
      50% { opacity: 1; }
    }
    @keyframes ripple {
      0% { transform: translate(-50%, -50%) scale(0.5); opacity: 0.8; }
      100% { transform: translate(-50%, -50%) scale(3); opacity: 0; }
    }
    .cursor-trail {
      position: fixed;
      width: 6px; height: 6px;
      background: #00f5ff;
      border-radius: 50%;
      pointer-events: none;
      z-index: 99998;
      transform: translate(-50%, -50%);
      opacity: 0.6;
      animation: trailFade 0.6s forwards;
    }
    @keyframes trailFade {
      to { opacity: 0; transform: translate(-50%, -50%) scale(0); }
    }
    :root {
      --bg: #0b0e17;
      --surface: #11131a;
      --text: #e2e8f0;
      --muted: #94a3b8;
      --accent: #00f5ff;
      --accent-dim: #00f5ff30;
    }
    * { margin: 0; padding: 0; box-sizing: border-box; }
    body {
      font-family: 'Satoshi', sans-serif;
      background: var(--bg);
      color: var(--text);
      line-height: 1.7;
      overflow-x: hidden;
      position: relative;
    }
    h1, h2, h3 { font-weight: 900; letter-spacing: -0.02em; }

    /* Fixed grain layer – now truly non-interactive */
    .grain::before {
      content: '';
      position: fixed;
      inset: 0;
      background: url('data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22><filter id=%22n%22><feTurbulence type=%22fractalNoise%22 baseFrequency=%22.7%22/></filter><rect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22 opacity=%220.06%22/></svg>');
      pointer-events: none;
      z-index: 1;
    }

    /* Particles also non-interactive */
    .particles {
      position: fixed;
      inset: 0;
      overflow: hidden;
      pointer-events: none;
      z-index: 2;
    }
    .particle {
      position: absolute;
      width: 4px;
      height: 4px;
      background: var(--accent);
      border-radius: 50%;
      opacity: 0;
      animation: float 20s infinite linear;
    }
    @keyframes float {
      0% { transform: translateY(100vh) translateX(0); }
      100% { transform: translateY(-100px) translateX(100px); }
    }

    .glow-border { box-shadow: 0 0 30px var(--accent-dim); }
    .magnetic-btn {
      position: relative;
      transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
      z-index: 10;
    }
    .magnetic-btn:hover {
      transform: translateY(-8px) scale(1.05);
      box-shadow: 0 20px 40px rgba(0, 245, 255, 0.25);
    }
    @keyframes appear {
      to { opacity: 1; transform: translateY(0); }
    }

  .progress-bar {
    position: fixed;
    top: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg, #00f5ff, #0066ff);
    transform-origin: left;
    transform: scaleX(0);
    z-index: 50;
  }
