﻿.morph-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #000;
  pointer-events: none;
}

.blob-premium {
  position: absolute;
  filter: blur(140px);
  opacity: 0.22;
  animation: morph-shape 25s ease-in-out infinite alternate;
}

.blob-premium--1 {
  width: min(800px, 90vw);
  height: min(800px, 90vw);
  top: -10%;
  left: -10%;
  background: #2563eb;
  animation: morph-shape 25s ease-in-out infinite alternate,
             drift-1 25s linear infinite;
}

.blob-premium--2 {
  width: min(700px, 80vw);
  height: min(700px, 80vw);
  bottom: -5%;
  right: -5%;
  background: #312e81;
  animation: morph-shape 25s ease-in-out infinite alternate,
             drift-2 30s linear infinite;
}

.morph-bg__veil {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(1px);
}

@keyframes morph-shape {
  0%,
  100% {
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
  }
  34% {
    border-radius: 70% 30% 50% 50% / 30% 30% 70% 70%;
  }
  67% {
    border-radius: 100% 60% 60% 100% / 100% 100% 60% 60%;
  }
}

@keyframes drift-1 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  33% {
    transform: translate(50px, -50px) scale(1.1);
  }
  66% {
    transform: translate(-30px, 80px) scale(0.95);
  }
}

@keyframes drift-2 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  33% {
    transform: translate(-60px, 80px) scale(0.9);
  }
  66% {
    transform: translate(40px, -30px) scale(1.15);
  }
}

@keyframes orbit {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@keyframes orbit-rev {
  to {
    transform: translate(-50%, -50%) rotate(-360deg);
  }
}

@keyframes scroll-pulse {
  0%,
  100% {
    transform: translateX(-50%) translateY(0);
    opacity: 0.05;
  }
  50% {
    transform: translateX(-50%) translateY(15px);
    opacity: 0.2;
  }
}

.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s var(--ease), transform 1.2s var(--ease);
  overflow: visible;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.reveal-delay-1 {
  transition-delay: 0.15s;
}

.reveal-delay-2 {
  transition-delay: 0.3s;
}

.reveal-delay-3 {
  transition-delay: 0.45s;
}
