    /* ---- Aurora-Hintergrund ---- */
    .aurora {
      position: fixed;
      inset: 0;
      overflow: hidden;
      z-index: -2;
      background: #05060f;
    }
    .aurora::before,
    .aurora::after {
      content: "";
      position: absolute;
      width: 120vmax;
      height: 120vmax;
      border-radius: 50%;
      filter: blur(90px);
      opacity: 0.45;
      animation: drift 26s ease-in-out infinite alternate;
    }
    .aurora::before {
      top: -40%;
      left: -30%;
      background: conic-gradient(from 0deg, #7c3aed, #06b6d4, #22d3ee, #7c3aed);
    }
    .aurora::after {
      bottom: -45%;
      right: -30%;
      background: conic-gradient(from 180deg, #ec4899, #8b5cf6, #06b6d4, #ec4899);
      animation-delay: -13s;
      animation-direction: alternate-reverse;
    }
    @keyframes drift {
      0%   { transform: translate(0, 0) rotate(0deg) scale(1); }
      50%  { transform: translate(6vw, -4vh) rotate(40deg) scale(1.15); }
      100% { transform: translate(-5vw, 5vh) rotate(-30deg) scale(0.95); }
    }

    /* ---- Schwebende Blobs ---- */
  .blob {
    position: fixed;
    border-radius: 50%;
    filter: blur(35px);        /* vorher 70px → klarere Konturen */
    opacity: 0.55;             /* vorher 0.35 → deutlich sichtbarer */
    mix-blend-mode: screen;    /* lässt sie "leuchten" statt nur zu färben */
    z-index: -1;
    animation: float 14s ease-in-out infinite;
  }
    @keyframes float {
      0%, 100% { transform: translateY(0) scale(1); }
      50%      { transform: translateY(-4vh) scale(1.08); }
    }

    /* ---- Sternen-Staub (dezent, kein Blinken) ---- */
    .stars {
      position: fixed;
      inset: 0;
      z-index: -1;
      background-image:
        radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.5) 50%, transparent 51%),
        radial-gradient(1px 1px at 70% 60%, rgba(255,255,255,.35) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 40% 80%, rgba(255,255,255,.4) 50%, transparent 51%),
        radial-gradient(1px 1px at 85% 20%, rgba(255,255,255,.45) 50%, transparent 51%),
        radial-gradient(1px 1px at 10% 70%, rgba(255,255,255,.3) 50%, transparent 51%);
      opacity: .6;
    }

    /* ---- 3D Tilt ---- */
    .tilt-scene { perspective: 1200px; }
    .tilt-card {
      transform-style: preserve-3d;
      transition: transform 0.15s ease-out;
      will-change: transform;
    }
    .tilt-inner { transform: translateZ(30px); }

    /* ---- Gradient-Border ---- */
    .gradient-border {
      position: relative;
      border-radius: 1.5rem;
      padding: 1.5px;
      background: linear-gradient(135deg, #22d3ee, #8b5cf6, #ec4899, #22d3ee);
      background-size: 300% 300%;
      animation: borderflow 12s ease infinite;
    }
    @keyframes borderflow {
      0%, 100% { background-position: 0% 50%; }
      50%      { background-position: 100% 50%; }
    }

    /* ---- Gradient-Text ---- */
    .gradient-text {
      background: linear-gradient(90deg, #22d3ee, #a78bfa, #f472b6);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    /* ---- Glow-Hover für Links ---- */
    .project-link {
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }
    .project-link:hover {
      transform: translateX(6px) scale(1.02);
      border-color: rgba(34, 211, 238, .7);
      box-shadow: 0 0 25px rgba(139, 92, 246, .35), 0 0 60px rgba(34, 211, 238, .15);
    }

    @media (prefers-reduced-motion: reduce) {
      .aurora::before, .aurora::after, .blob, .gradient-border { animation: none; }
      .tilt-card { transform: none !important; }
    }