.superellipse {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50,0 C70,0 85,0 92.5,7.5 C100,15 100,30 100,50 C100,70 100,85 92.5,92.5 C85,100 70,100 50,100 C30,100 15,100 7.5,92.5 C0,85 0,70 0,50 C0,30 0,15 7.5,7.5 C15,0 30,0 50,0 Z' fill='%23fff'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 100% 100%;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50,0 C70,0 85,0 92.5,7.5 C100,15 100,30 100,50 C100,70 100,85 92.5,92.5 C85,100 70,100 50,100 C30,100 15,100 7.5,92.5 C0,85 0,70 0,50 C0,30 0,15 7.5,7.5 C15,0 30,0 50,0 Z' fill='%23fff'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 100% 100%;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.animate-fade-up {
  opacity: 0;
  animation: fadeUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.delay-1 { animation-delay: 0.05s; }
.delay-2 { animation-delay: 0.25s; }
.delay-3 { animation-delay: 0.45s; }

@media (prefers-reduced-motion: reduce) {
  .animate-fade-up {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
