.landing-page {
  animation: cover-awaken 1.2s cubic-bezier(0.2, 0.85, 0.28, 1) both;
}

.landing-page::before {
  animation: pattern-drift 18s linear infinite;
}

.sunburst {
  animation: sun-wheel 15s linear infinite, sun-breathe 4.8s ease-in-out infinite;
  transform-origin: center;
}

.flag-fold--top {
  animation: flag-rise 8s ease-in-out infinite;
}

.flag-fold--bottom {
  animation: flag-float 9s ease-in-out -2.3s infinite;
}

.light-sweep {
  position: absolute;
  z-index: 0;
  top: -38%;
  left: -70%;
  width: 31%;
  height: 184%;
  pointer-events: none;
  transform: rotate(24deg);
  background: linear-gradient(90deg, transparent, rgba(255, 249, 219, 0.03) 27%, rgba(255, 234, 167, 0.54) 50%, rgba(255, 249, 219, 0.03) 73%, transparent);
  filter: blur(1px);
  mix-blend-mode: screen;
  animation: light-sweep 8.5s cubic-bezier(0.22, 0.74, 0.24, 1) 1.5s infinite;
}

.glow-particles {
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
}

.glow-particles i {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: #ffe8a7;
  box-shadow: 0 0 9px 2px rgba(255, 224, 138, 0.66);
  opacity: 0;
  animation: particle-rise 5.8s ease-in-out infinite;
}

.glow-particles i:nth-child(1) { top: 29%; left: 10%; animation-delay: 0.4s; }
.glow-particles i:nth-child(2) { top: 47%; left: 77%; animation-delay: 1.5s; }
.glow-particles i:nth-child(3) { top: 19%; left: 56%; animation-delay: 2.7s; }
.glow-particles i:nth-child(4) { top: 60%; left: 31%; animation-delay: 3.6s; }
.glow-particles i:nth-child(5) { top: 74%; left: 68%; animation-delay: 4.6s; }

.star {
  animation: star-glow 4.2s ease-in-out 0.8s infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.hero__kicker,
.hero__project,
.hero h1 span,
.hero h1 strong,
.hero__rule,
.hero__quote {
  animation: title-reveal 820ms cubic-bezier(0.2, 0.82, 0.3, 1) both;
}

.hero__kicker { animation-delay: 220ms; }
.hero__project { animation-delay: 390ms; }
.hero h1 span { animation-delay: 540ms; }
.hero h1 strong { animation-delay: 680ms; }
.hero__rule { animation-delay: 830ms; }
.hero__quote { animation-delay: 970ms; }
.anniversary { animation: anniversary-in 1s cubic-bezier(0.2, 0.8, 0.26, 1) 360ms both; }

.power-scene {
  animation: scene-breathe 6.5s ease-in-out infinite;
}

.power-scene__lines path {
  stroke-dasharray: 8 12;
  animation: current-flow 2.8s linear infinite;
}

.tower--front {
  animation: tower-glow 4.8s ease-in-out 1.2s infinite;
}

.tower--back {
  animation: tower-glow 4.8s ease-in-out 2.1s infinite;
}

.power-scene__caption {
  animation: caption-in 900ms cubic-bezier(0.2, 0.82, 0.3, 1) 1.15s both;
}

.entry-area {
  animation: entry-in 900ms cubic-bezier(0.2, 0.82, 0.3, 1) 1.18s both;
}

.entry {
  animation: entry-pulse 3.8s ease-in-out 2.8s infinite;
}

.landing-page.is-energized .light-sweep {
  animation: light-sweep 1s ease-out both;
}

.landing-page.is-energized .glow-particles i {
  animation-duration: 1.1s;
}

@keyframes cover-awaken {
  from { filter: saturate(0.78) brightness(0.84); }
  to { filter: saturate(1) brightness(1); }
}

@keyframes pattern-drift {
  to { background-position: 52px 38px, 42px 42px; }
}

@keyframes sun-wheel {
  to { transform: rotate(360deg); }
}

@keyframes sun-breathe {
  50% { opacity: 0.52; }
}

@keyframes flag-rise {
  50% { transform: rotate(-10deg) translate3d(2%, -5px, 0); }
}

@keyframes flag-float {
  50% { transform: rotate(9deg) translate3d(-2%, -8px, 0); }
}

@keyframes light-sweep {
  0%, 12% { transform: translateX(0) rotate(24deg); opacity: 0; }
  18% { opacity: 0.8; }
  54% { opacity: 0.62; }
  80%, 100% { transform: translateX(575%) rotate(24deg); opacity: 0; }
}

@keyframes particle-rise {
  0%, 16% { transform: translate3d(0, 7px, 0) scale(0.35); opacity: 0; }
  34% { opacity: 0.75; }
  72% { opacity: 0.24; }
  100% { transform: translate3d(10px, -38px, 0) scale(1.3); opacity: 0; }
}

@keyframes star-glow {
  0%, 100% { filter: drop-shadow(0 4px 12px rgba(83, 1, 7, 0.34)); transform: scale(1); }
  50% { filter: drop-shadow(0 0 19px rgba(255, 233, 151, 0.95)); transform: scale(1.08); }
}

@keyframes title-reveal {
  from { opacity: 0; transform: translate3d(0, 18px, 0); filter: blur(4px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

@keyframes anniversary-in {
  from { opacity: 0; transform: translate3d(18px, -12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes scene-breathe {
  50% { filter: brightness(1.1) saturate(1.08); }
}

@keyframes current-flow {
  to { stroke-dashoffset: -40; }
}

@keyframes tower-glow {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(255, 230, 149, 0)); opacity: 0.8; }
  50% { filter: drop-shadow(0 0 9px rgba(255, 226, 134, 0.83)); opacity: 1; }
}

@keyframes caption-in {
  from { opacity: 0; transform: translate3d(-12px, 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes entry-in {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes entry-pulse {
  0%, 100% { box-shadow: 0 12px 27px rgba(55, 0, 6, 0.3); }
  50% { box-shadow: 0 12px 38px rgba(255, 211, 110, 0.48), 0 0 0 5px rgba(255, 225, 145, 0.09); }
}

@media (prefers-reduced-motion: reduce) {
  .landing-page,
  .landing-page::before,
  .sunburst,
  .flag-fold--top,
  .flag-fold--bottom,
  .light-sweep,
  .glow-particles i,
  .star,
  .hero__kicker,
  .hero__project,
  .hero h1 span,
  .hero h1 strong,
  .hero__rule,
  .hero__quote,
  .anniversary,
  .power-scene,
  .power-scene__lines path,
  .tower,
  .power-scene__caption,
  .entry-area,
  .entry {
    animation: none !important;
  }
}
