html {
  scroll-behavior: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
html::-webkit-scrollbar {
  width: 0;
  height: 0;
}
body {
  margin: 0;
  -webkit-overflow-scrolling: touch;
  background-color: #fafafa;
  color: #0a0a0a;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body::-webkit-scrollbar,
#menu::-webkit-scrollbar {
  width: 0;
  height: 0;
}
main,
#menu {
  max-width: 100vw;
  overflow-x: hidden;
}
.bg-grid {
  background-size: 100px 100px;
  background-image: 
    linear-gradient(to right, rgba(0, 0, 0, 0.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
}
.glow-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  z-index: 0;
  opacity: 0.15;
  pointer-events: none;
}
.gradient-mesh {
  background: linear-gradient(135deg, #185A9D 0%, #1B2F78 100%);
}
.glass-panel {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-marquee {
  display: flex;
  width: 200%;
  animation: marquee 15s linear infinite;
}
@media (min-width: 768px) {
  .animate-marquee { animation: marquee 30s linear infinite; }
}
.animate-marquee:hover { animation-play-state: paused; }

/* Animation Classes */
.fade-up { opacity: 0; transform: translateY(20px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.fade-up.visible { opacity: 1; transform: translateY(0); }

.fade-in { opacity: 0; transition: opacity 1s ease-out; }
.fade-in.visible { opacity: 1; }

.scale-in { opacity: 0; transform: scale(0.95); transition: opacity 1s ease-out, transform 1s ease-out; }
.scale-in.visible { opacity: 1; transform: scale(1); }

.slide-right { opacity: 0; transform: translateX(40px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.slide-right.visible { opacity: 1; transform: translateX(0); }

.slide-left { opacity: 0; transform: translateX(-40px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.slide-left.visible { opacity: 1; transform: translateX(0); }


/* Loader */
#loader { transition: opacity 0.8s ease; }
.loader-line-1 { height: 0; transition: height 1.5s cubic-bezier(0.76, 0, 0.24, 1); }
.loader-line-2 { height: 0; transition: height 1.5s cubic-bezier(0.76, 0, 0.24, 1) 0.4s; }

/* Menu */
#menu { clip-path: inset(0 0 100% 0); transition: clip-path 0.7s cubic-bezier(0.76, 0, 0.24, 1), opacity 0.7s; opacity: 0; overflow-x: hidden; }
#menu.open { clip-path: inset(0 0 0% 0); opacity: 1; overflow-x: hidden; }
.menu-item { opacity: 0; transform: translateY(40px); transition: opacity 0.5s ease-out, transform 0.5s ease-out; }
#menu.open .menu-item { opacity: 1; transform: translateY(0); }
