/* Motion layer — cinematic, subtle and performance-aware */

@keyframes preloaderBar {
  0% { transform: translateX(-120%); }
  55% { transform: translateX(70%); }
  100% { transform: translateX(240%); }
}

@keyframes loaderFloat {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.02); }
}

@keyframes pulseHalo {
  0%, 100% { transform: scale(.92); opacity: .56; }
  50% { transform: scale(1.06); opacity: .9; }
}

@keyframes auroraDrift {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
  50% { transform: translate3d(4vw, 3vh, 0) rotate(18deg) scale(1.08); }
}

@keyframes shineMove {
  0% { transform: translateX(-120%); }
  45%, 100% { transform: translateX(125%); }
}

@keyframes floatLogo {
  0%, 100% { transform: translate3d(0, 0, 36px); }
  50% { transform: translate3d(0, -13px, 36px); }
}

@keyframes scrollDot {
  0% { transform: translateY(0); opacity: .2; }
  50% { opacity: 1; }
  100% { transform: translateY(28px); opacity: .08; }
}

@keyframes tickerMove {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@keyframes ringSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.preloader__bar span { animation: preloaderBar 1.45s var(--ease) infinite; }
.preloader__logo { animation: loaderFloat 4s ease-in-out infinite; }
.preloader__halo { animation: pulseHalo 3.6s ease-in-out infinite; }
.aurora { animation: auroraDrift 18s ease-in-out infinite; }
.aurora--two { animation-duration: 22s; animation-direction: reverse; }
.logo-stage img { animation: floatLogo 7s ease-in-out infinite; }
.logo-stage__shine { animation: shineMove 6.8s ease-in-out infinite; }
.logo-stage__rings { animation: ringSpin 26s linear infinite; }
.scroll-cue span { animation: scrollDot 1.9s ease-in-out infinite; }
.ticker__track { animation: tickerMove 26s linear infinite; }

.reveal {
  opacity: 0;
  transform: translate3d(0, 34px, 0) scale(.985);
  filter: blur(8px);
  transition:
    opacity .85s var(--ease),
    transform .85s var(--ease),
    filter .85s var(--ease);
}

.reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

.reveal--delay-1 { transition-delay: .1s; }
.reveal--delay-2 { transition-delay: .2s; }
.reveal--delay-3 { transition-delay: .3s; }

.glass-card,
.glass-panel,
.future-card,
.project-card,
.logo-stage {
  transition:
    transform .5s var(--ease),
    border-color .35s var(--ease),
    box-shadow .35s var(--ease),
    background .35s var(--ease);
}

.nav-shell {
  transition: transform .34s var(--ease), background .34s var(--ease), border-color .34s var(--ease);
}

.site-header.is-compact .nav-shell {
  transform: translateY(-4px);
  background: rgba(8, 8, 9, .74);
  border-color: rgba(232,180,188,.18);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .reveal { opacity: 1; transform: none; filter: none; }
}
