/* Custom fonts mapping */
.font-orbitron { font-family: 'Orbitron', sans-serif; }
.font-rajdhani { font-family: 'Rajdhani', sans-serif; }
body { margin: 0; font-family: 'Inter', sans-serif; }
.octagon { clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%); }
.custom-cursor-active { cursor: none; }

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #1A1A2E; }
::-webkit-scrollbar-thumb { background: #6D071A; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #00F2EA; }

.transform-style-3d { transform-style: preserve-3d; }
.shadow-glow { box-shadow: 0 0 50px rgba(0,242,234,0.06); }

@media (max-width: 768px) {
  nav#nav { display: none; }
  .mobile-menu { display: block !important; }
}

/* Modal */
#modal { display: flex; }
#modal.hidden { display: none; }

/* Active nav */
.nav-active { color: #00F2EA !important; }

/* Animations */
.fade-in { animation: fadeIn .45s ease both; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px);} to { opacity: 1; transform: translateY(0);} }

/* Page banner */
.page-banner {
  padding: 140px 24px 80px;
  text-align: center;
}
.page-banner h1 {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(2rem, 5vw, 4rem);
  text-transform: uppercase;
  margin: 0 0 16px;
  color: #fff;
}
.page-banner .bar {
  width: 80px;
  height: 4px;
  margin: 0 auto;
}
@keyframes loading-bar {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

.dot-animation {
  display: inline-block;
  width: 10px;
  text-align: left;
  animation: dots 1.5s steps(4, end) infinite;
}

@keyframes dots {
  0%, 20% { content: ""; }
  40% { content: "."; }
  60% { content: ".."; }
  80%, 100% { content: "..."; }
}

#loader-wrapper.loader-hidden {
  opacity: 0;
  pointer-events: none;
}