:root{
  --col1: hsl(20.82deg 100% 50%); /* oben */
  --col2: hsl(197.35deg 100% 50%); /* unten */
  --bg:   #071c39;

  /* Steuerung */
  --size: 500px;
  --speed: 50s;
  --morph-speed: 26s;
  --easing: ease-in-out;
}

.cssbg.single {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transform-origin: center center;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    pointer-events: none;
    width: 100vw;
    height: 100vh;
    z-index: -2;
    background-blend-mode: multiply;
    /*animation: rotateBG 6000s linear infinite;*/
}

canvas {
    background-blend-mode: multiply;
}

@keyframes rotateBG {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to   { transform: translate(-50%, -50%) rotate(360deg); }
}

.cssbg.animated {
  position: fixed;
  inset: 0;
  z-index: -2; 
  pointer-events: none;
  overflow: hidden;
  isolation: isolate;
  background: var(--bg);
}

/* Optional: dezente Vignette */
.scrim{
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(110vmax 110vmax at 50% 55%,
    rgb(0 0 0 / 0) 55%, color-mix(in srgb, var(--bg) 100%, black 0%) 100%);
}

/* Der “Blob” – jetzt mit Morph + Squish */
.cssbg.animated::before{
  content:"";
  position: absolute;
  left: 50%; top: 50%;
  width: var(--size);
  height: var(--size);
  transform: translate(-50%, -50%);
  background-image: linear-gradient( var(--col1),  var(--col2));
  filter: blur(calc(var(--size) / 6));
  /* Startform; wird per blob-morph weiter “verbogen” */
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;

  /* Kombo: Rotation+Squish + Form-Morph */
  animation:
    spin-squish  var(--speed)      var(--easing) infinite,
    blob-morph   var(--morph-speed) ease-in-out  infinite;
  will-change: transform, border-radius, filter;
  transition: width height 0.6 ease-in-out
}

.cssbg.animated::after,
.cssbg.single::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(10,10,10,0) 30%, rgba(10,10,10,0.8) 100%);
  pointer-events: none; /* verhindert, dass es klicks blockiert */
  mix-blend-mode: multiply;
}

/* Responsiv wie im Pen */
@media (min-width: 720px){
  :root{ --size: 680px; }
}

/* === Keyframes === */

/* Rotation + sanfter Squish (non-uniform scale) für “verbogene” Anmutung */
@keyframes spin-squish{
  0%   { transform: translate(-50%, -50%) rotate(  0deg) scale(1.6, 0.94); }
  25%  { transform: translate(-50%, -50%) rotate( 90deg) scale(0.95, 1.9); }
  50%  { transform: translate(-50%, -50%) rotate(180deg) scale(2, 0.88); }
  75%  { transform: translate(-50%, -50%) rotate(270deg) scale(0.92, 1.4); }
  100% { transform: translate(-50%, -50%) rotate(360deg) scale(1.56, 0.99); }
}

/* Deutlichere Border-Radius-Morphs (mehr “Verbiegung”) */
@keyframes blob-morph{
  0%,
  100%{
    border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
  }
  20%{
    border-radius: 42% 58% 78% 22% / 28% 52% 48% 72%;
  }
  40%{
    border-radius: 65% 35% 55% 45% / 58% 32% 68% 42%;
  }
  60%{
    border-radius: 38% 62% 30% 70% / 60% 40% 60% 40%;
  }
  80%{
    border-radius: 55% 45% 68% 32% / 36% 64% 34% 66%;
  }
}

/* Bewegungsreduktion */
@media (prefers-reduced-motion: reduce){
  .cssbg.animated::before{ animation: none !important; }
}
