/* ====================================================================== *
 * File: footer-visual-polish.css
 * Location: static/css/footer-visual-polish.css
 * Description: Replaces the abstract orbit/core footer animation with restrained rising golden stars suitable for the academy brand.
 * Version: 1.1.1
 * Last Modified: Mon Aug 10 2026 - 12:42
 * Dependencies: animated_footer.css
 * ====================================================================== */

/* -------------------------------------------------------------------------- *
 * 1. Remove orbit and core geometry
 * -------------------------------------------------------------------------- */

.kinetic-footer-scene {
  position: relative;
  overflow: hidden;
  perspective: none;
  transform-style: flat;
}

.kinetic-footer-orbit,
.kinetic-footer-orbit.is-reverse,
.kinetic-footer-cube {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  transform-style: flat;
  animation: none;
}

.kinetic-footer-cube-face,
.kinetic-footer-orbit::after,
.kinetic-footer-cube::after {
  display: none !important;
}

/* -------------------------------------------------------------------------- *
 * 2. Rising golden star streams
 * -------------------------------------------------------------------------- */

/* - - - 2.1. Primary star stream - - - */

.kinetic-footer-orbit::before {
  content: "✦";
  position: absolute;
  top: auto;
  right: auto;
  left: 18px;
  bottom: -18px;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: rgba(248, 211, 118, 0.96);
  font-family: Georgia, serif;
  font-size: 11px;
  line-height: 1;
  text-shadow:
    26px 15px 0 rgba(244, 201, 99, 0.78),
    55px -5px 0 rgba(255, 226, 150, 0.9),
    88px 20px 0 rgba(220, 170, 58, 0.72),
    119px -10px 0 rgba(250, 214, 122, 0.86),
    145px 12px 0 rgba(255, 235, 174, 0.68);
  box-shadow: none;
  animation: footer-stars-rise-a 5.8s linear infinite;
}

/* - - - 2.2. Secondary star stream - - - */

.kinetic-footer-orbit.is-reverse::before {
  content: "✦";
  position: absolute;
  top: auto;
  right: auto;
  left: 35px;
  bottom: -26px;
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: rgba(255, 232, 165, 0.88);
  font-family: Georgia, serif;
  font-size: 7px;
  line-height: 1;
  text-shadow:
    22px -6px 0 rgba(238, 193, 91, 0.7),
    48px 18px 0 rgba(255, 222, 136, 0.82),
    79px 1px 0 rgba(248, 206, 103, 0.74),
    108px 22px 0 rgba(255, 235, 179, 0.7),
    132px -7px 0 rgba(226, 176, 62, 0.66);
  box-shadow: none;
  animation: footer-stars-rise-b 7.2s linear 0.9s infinite;
}

/* - - - 2.3. Fine sparkle stream - - - */

.kinetic-footer-cube::before {
  content: "✦";
  position: absolute;
  top: auto;
  right: auto;
  left: 8px;
  bottom: -12px;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background: none;
  color: rgba(255, 242, 198, 0.72);
  font-family: Georgia, serif;
  font-size: 5px;
  line-height: 1;
  text-shadow:
    18px 11px 0 rgba(255, 224, 144, 0.58),
    42px -4px 0 rgba(241, 196, 90, 0.66),
    68px 17px 0 rgba(255, 237, 184, 0.62),
    96px -8px 0 rgba(236, 187, 72, 0.58),
    124px 10px 0 rgba(255, 224, 143, 0.66),
    151px -1px 0 rgba(255, 242, 199, 0.52);
  box-shadow: none;
  animation: footer-stars-rise-c 4.9s linear 1.7s infinite;
}

/* -------------------------------------------------------------------------- *
 * 3. Motion
 * -------------------------------------------------------------------------- */

@keyframes footer-stars-rise-a {
  0% {
    transform: translateY(24px) scale(0.86);
    opacity: 0;
  }
  16% {
    opacity: 0.9;
  }
  76% {
    opacity: 0.78;
  }
  100% {
    transform: translateY(-92px) scale(1.03);
    opacity: 0;
  }
}

@keyframes footer-stars-rise-b {
  0% {
    transform: translateY(32px) scale(0.78);
    opacity: 0;
  }
  22% {
    opacity: 0.72;
  }
  80% {
    opacity: 0.58;
  }
  100% {
    transform: translateY(-86px) scale(1);
    opacity: 0;
  }
}

@keyframes footer-stars-rise-c {
  0% {
    transform: translateY(20px);
    opacity: 0;
  }
  18% {
    opacity: 0.58;
  }
  78% {
    opacity: 0.46;
  }
  100% {
    transform: translateY(-78px);
    opacity: 0;
  }
}

/* -------------------------------------------------------------------------- *
 * 4. Reduced motion
 * -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .kinetic-footer-orbit::before,
  .kinetic-footer-orbit.is-reverse::before,
  .kinetic-footer-cube::before {
    animation: none !important;
    transform: translateY(-28px);
    opacity: 0.72;
  }
}

/* ============================= End of footer-visual-polish.css ============================= */