@keyframes solar-pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.88;
  }
  50% {
    transform: scale(1.08);
    opacity: 1;
  }
}

@keyframes star-drift {
  0% {
    transform: translate3d(-2%, -2%, 0) scale(1.02);
  }
  50% {
    transform: translate3d(2%, 3%, 0) scale(1.06);
  }
  100% {
    transform: translate3d(-2%, -2%, 0) scale(1.02);
  }
}

@keyframes twinkle-soft {
  0%,
  100% {
    filter: brightness(0.92);
  }
  50% {
    filter: brightness(1.3) drop-shadow(0 0 8px rgba(255, 224, 184, 0.42));
  }
}

@keyframes twinkle-bright {
  0%,
  100% {
    filter: brightness(1);
  }
  50% {
    filter: brightness(1.62) drop-shadow(0 0 12px rgba(255, 214, 170, 0.58));
  }
}

@keyframes twinkle-front {
  0%,
  100% {
    filter: brightness(0.95);
  }
  50% {
    filter: brightness(1.95) drop-shadow(0 0 14px rgba(255, 244, 210, 0.78));
  }
}

@keyframes nebula-surge {
  0%,
  100% {
    transform: scale(1) translate3d(-2%, -1%, 0);
    opacity: 0.72;
  }
  50% {
    transform: scale(1.09) translate3d(2%, 2%, 0);
    opacity: 0.9;
  }
}

@keyframes aurora-sway {
  0%,
  100% {
    transform: translate3d(-3%, -3%, 0) rotate(-2deg);
    background-position: 8% 20%, 76% 80%, 60% 16%;
    opacity: 0.48;
  }
  50% {
    transform: translate3d(2%, 3%, 0) rotate(2deg);
    background-position: 96% 8%, 20% 92%, 26% 40%;
    opacity: 0.76;
  }
}

@keyframes atmosphere-bloom {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.68;
  }
  50% {
    transform: scale(1.08);
    opacity: 0.86;
  }
}

@keyframes ray-spin {
  0% {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.04);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}

@keyframes plasma-spin {
  from {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.03);
  }
  to {
    transform: rotate(360deg) scale(1);
  }
}

@keyframes plasma-flicker {
  0%,
  100% {
    opacity: 0.45;
  }
  45% {
    opacity: 0.66;
  }
  70% {
    opacity: 0.52;
  }
}

@keyframes warp-flow {
  0%,
  100% {
    transform: translate3d(-2%, -2%, 0) scale(1);
    opacity: 0.58;
  }
  50% {
    transform: translate3d(2%, 2%, 0) scale(1.1);
    opacity: 0.78;
  }
}

@keyframes eclipse-float {
  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    transform: translate(-50%, -53%) scale(1.02);
  }
}

@keyframes corona-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes corona-spin-reverse {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg);
  }
}

@keyframes prominence-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes prominence-flare {
  0%,
  100% {
    opacity: 0.75;
  }
  50% {
    opacity: 1;
  }
}

@keyframes caustic-shift {
  0%,
  100% {
    transform: translate3d(-2%, -1%, 0) rotate(-3deg);
    opacity: 0.54;
  }
  50% {
    transform: translate3d(2%, 2%, 0) rotate(2deg);
    opacity: 0.78;
  }
}

@keyframes halo-breath {
  0%,
  100% {
    transform: scale(0.98);
    opacity: 0.72;
  }
  50% {
    transform: scale(1.04);
    opacity: 1;
  }
}

@keyframes ring-throb {
  0%,
  100% {
    transform: scale(1);
    opacity: 0.52;
  }
  50% {
    transform: scale(1.06);
    opacity: 0.92;
  }
}

@keyframes ring-expand {
  0% {
    transform: scale(0.9);
    opacity: 0.14;
  }
  45% {
    opacity: 0.82;
  }
  100% {
    transform: scale(1.1);
    opacity: 0.08;
  }
}

@keyframes rim-shift {
  0%,
  100% {
    transform: rotate(0deg);
    opacity: 0.66;
  }
  50% {
    transform: rotate(9deg);
    opacity: 1;
  }
}

@keyframes flare-sweep {
  0%,
  100% {
    transform: rotate(-11deg) translateY(-9%) scaleX(1);
    opacity: 0.56;
  }
  50% {
    transform: rotate(-3deg) translateY(5%) scaleX(1.22);
    opacity: 0.98;
  }
}

@keyframes arc-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes shard-rotate {
  from {
    transform: rotate(0deg) scale(1);
    opacity: 0.48;
  }
  50% {
    transform: rotate(180deg) scale(1.03);
    opacity: 0.62;
  }
  to {
    transform: rotate(360deg) scale(1);
    opacity: 0.48;
  }
}

@keyframes grain-shift {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(-1.2%, 1.2%, 0);
  }
  100% {
    transform: translate3d(1.2%, -1.2%, 0);
  }
}

@media (max-width: 700px) {
  .scene {
    width: 94vw;
    height: 76vh;
    border-radius: 26px;
  }

  .eclipse {
    width: min(82vw, 360px);
  }

  .rays,
  .arcs,
  .shards {
    filter: blur(3px) saturate(140%);
    opacity: 0.52;
  }

  .plasma,
  .prominences,
  .caustic {
    opacity: 0.46;
  }

  .grain {
    opacity: 0.16;
  }
}
