/* ===================================
   MOTION — GPU-only (transform/opacity)
   =================================== */

@keyframes float-orb { 0%, 100% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(20px,-30px,0) scale(1.05); } }
.orb { animation: float-orb 14s ease-in-out infinite; }
.orb-2 { animation-duration: 18s; animation-delay: -4s; }
.orb-3 { animation-duration: 22s; animation-delay: -9s; }

@keyframes blink-cursor { 0%, 45% { opacity: 1; } 50%, 100% { opacity: 0; } }
.cursor { animation: blink-cursor 1s step-end infinite; height: 1.1em; }

@keyframes fade-in-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.fade-in { animation: fade-in-up 0.7s cubic-bezier(0.16,1,0.3,1) both; }
.fade-in-delay-1 { animation: fade-in-up 0.7s cubic-bezier(0.16,1,0.3,1) 0.1s both; }
.fade-in-delay-2 { animation: fade-in-up 0.7s cubic-bezier(0.16,1,0.3,1) 0.2s both; }
.fade-in-delay-3 { animation: fade-in-up 0.7s cubic-bezier(0.16,1,0.3,1) 0.3s both; }
.fade-in-delay-4 { animation: fade-in-up 0.7s cubic-bezier(0.16,1,0.3,1) 0.4s both; }
.fade-in-delay-5 { animation: fade-in-up 0.7s cubic-bezier(0.16,1,0.3,1) 0.5s both; }

@keyframes ring-spin { to { transform: rotate(360deg); } }
.spin-ring { animation: ring-spin 18s linear infinite; }

@keyframes float-slow { 0%, 100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-14px,0); } }
.float-slow { animation: float-slow 6s ease-in-out infinite; }

header { transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; }
header.scrolled { box-shadow: 0 12px 40px -20px rgba(0,0,0,0.5); }

.site-nav { transition: transform 0.35s cubic-bezier(0.16,1,0.3,1); }

#back-to-top { transform: translateY(12px); }
#back-to-top.visible { opacity: 1 !important; pointer-events: auto !important; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  .orb, .fade-in, .fade-in-delay-1, .fade-in-delay-2, .fade-in-delay-3, .fade-in-delay-4, .fade-in-delay-5, .cursor, .spin-ring, .float-slow {
    animation: none !important;
  }
}
