/* Custom Animations */
:root {
  --iei-primary: #003366;
  --iei-accent: #1e90ff;
}

body { font-family: 'Inter', sans-serif; }
h1,h2,h3,h4,h5,h6 { font-family: 'Crimson Pro', serif; }

.text-iei-primary { color: var(--iei-primary); }
.bg-iei-primary { background-color: var(--iei-primary); }
.text-iei-accent { color: var(--iei-accent); }
.bg-iei-accent { background-color: var(--iei-accent); }
.border-iei-primary { border-color: var(--iei-primary); }
.border-iei-accent { border-color: var(--iei-accent); }

.animate-fade-in-up {
  animation: fadeInUp 0.8s ease-out forwards;
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Ticker marquee */
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-marquee {
  display: flex;
  width: max-content;
  animation: marquee 60s linear infinite;
}
.animate-marquee:hover { animation-play-state: paused; }

/* Gallery scroll */
@keyframes scrollPartners {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-scroll-partners {
  display: flex;
  width: max-content;
  animation: scrollPartners 35s linear infinite;
}
.animate-scroll-partners:hover { animation-play-state: paused; }

/* Newton's Cradle */
.newtons-cradle {
  --uib-size: 80px;
  --uib-speed: 1.2s;
  --uib-color: #003366;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--uib-size);
  height: var(--uib-size);
}
.newtons-cradle__dot {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  width: 25%;
  transform-origin: center top;
}
.newtons-cradle__dot::after {
  content: '';
  display: block;
  width: 100%;
  height: 25%;
  border-radius: 50%;
  background-color: var(--uib-color);
}
.newtons-cradle__dot:first-child { animation: swing var(--uib-speed) linear infinite; }
.newtons-cradle__dot:last-child { animation: swing2 var(--uib-speed) linear infinite; }

@keyframes swing {
  0% { transform: rotate(0deg); animation-timing-function: ease-out; }
  25% { transform: rotate(70deg); animation-timing-function: ease-in; }
  50% { transform: rotate(0deg); animation-timing-function: linear; }
}
@keyframes swing2 {
  0% { transform: rotate(0deg); animation-timing-function: ease-out; }
  50% { transform: rotate(0deg); animation-timing-function: ease-in; }
  75% { transform: rotate(-70deg); animation-timing-function: ease-in; }
}

/* Nav active */
.nav-link.active { color: var(--iei-accent); text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 2px; }

/* Scrolled navbar */
.navbar-scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.1); }

/* Pulse animate */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
.animate-pulse { animation: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite; }

/* Toast */
#toast {
  position: fixed; bottom: 24px; right: 24px; z-index: 9999;
  background: #003366; color: white; padding: 16px 24px;
  border-radius: 12px; font-weight: 600; font-size: 14px;
  transform: translateY(100px); opacity: 0;
  transition: all 0.3s ease; pointer-events: none;
}
#toast.show { transform: translateY(0); opacity: 1; }
