html, body {
  height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  will-change: transform; /* Optimize for animations */
}

body {
  background: linear-gradient(270deg, #0a0f1c, #111418, #1b2127);
  background-size: 200% 200%;
  animation: gradientBG 20s ease infinite;
  color: #e0e0e0;
}

@keyframes gradientBG {
  0% {background-position: 0% 50%;}
  100% {background-position: 100% 50%;}
}

.fade-in {
  opacity: 0;
  animation: fadeIn 0.8s ease-in forwards;
  will-change: opacity;
}

@keyframes fadeIn {
  to { opacity: 1; }
}

.glass {
  background: rgba(27, 33, 39, 0.85);
  border: 1px solid rgba(12, 127, 242, 0.15);
  box-shadow: 0 4px 16px 0 rgba(12,127,242,0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  will-change: transform;
}

.glass:hover {
  border-color: rgba(12,127,242,0.3);
  box-shadow: 0 4px 20px 0 rgba(12,127,242,0.2);
  transform: translateY(-2px);
}

.card-animate {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease-out, transform 0.4s ease-out;
  will-change: transform, opacity;
}

.card-animate.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Simplified neon text effect */
.neon-text {
  text-shadow: 0 0 5px rgba(12,127,242,0.5);
}

/* Simplified glowing border effect */
.glow-border {
  position: relative;
}

.glow-border::before {
  content: '';
  position: absolute;
  inset: -1px;
  background: linear-gradient(45deg, 
    rgba(12,127,242,0.3),
    rgba(12,127,242,0.1)
  );
  border-radius: inherit;
  z-index: -1;
}

/* Simplified button style */
.futuristic-btn {
  background: linear-gradient(45deg, #0c7ff2, #0a0f1c);
  border: 1px solid rgba(12,127,242,0.3);
  box-shadow: 0 0 10px rgba(12,127,242,0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  will-change: transform;
}

.futuristic-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 15px rgba(12,127,242,0.3);
}

/* Simplified background pattern */
.bg-pattern {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: 
    radial-gradient(circle at 25% 25%, rgba(12,127,242,0.03) 1px, transparent 1px),
    radial-gradient(circle at 75% 75%, rgba(12,127,242,0.03) 1px, transparent 1px);
  background-size: 100px 100px;
  pointer-events: none;
  z-index: -1;
}

/* Prevent inner scrollbars on main layout containers */
.group\/design-root,
.layout-content-container,
.fade-in {
  overflow: visible !important;
}

/* Optimized mobile styles */
@media (max-width: 640px) {
  html, body {
    height: 100vh !important;
    min-height: 100vh !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
    height: 100vh !important;
    /* Disable gradient animation on mobile */
    animation: none;
    background: #0a0f1c;
  }

  .group\/design-root {
    flex: 1 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
    height: 100vh !important;
  }

  .fade-in {
    flex: 1 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* Disable heavy effects on mobile */
  .bg-pattern {
    display: none;
  }

  .glass {
    background: rgba(27, 33, 39, 0.95);
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  }

  .neon-text {
    text-shadow: none;
  }

  .glow-border::before {
    display: none;
  }

  /* Optimize transitions */
  .card-animate {
    transition: opacity 0.3s ease-out;
    transform: none;
  }

  .card-animate.visible {
    transform: none;
  }

  /* Layout optimizations */
  #footer-container, footer {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-radius: 0 !important;
    flex-shrink: 0 !important;
  }

  footer {
    border-radius: 0 !important;
  }

  footer > div, footer .glass {
    border-radius: 0 !important;
    margin-bottom: 0 !important;
  }

  .layout-content-container, .glass {
    padding: 0 8px !important;
    box-sizing: border-box;
  }

  .px-2, .sm\:px-4, .md\:px-8, .lg\:px-16 {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .w-full, .flex-1 {
    width: 100% !important;
  }

  .card-animate, .glass, .glow-border {
    margin-bottom: 16px !important;
  }

  .futuristic-btn {
    width: 100%;
    font-size: 1rem;
    padding: 12px 0;
  }

  h1, h2, h3, h4 {
    font-size: 1.2em !important;
  }

  .glass {
    padding: 0 !important;
    border-radius: 12px !important;
  }

  /* Restore technology card specific styles */
  .glass > .w-full.bg-center.bg-no-repeat.aspect-video.bg-cover.rounded-t-xl {
    display: block !important;
    width: 100% !important;
    border-radius: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .glass > .p-4 {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  #technology .glass.card-animate {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  #technology .glass.card-animate:first-child {
    margin-top: 0 !important;
  }

  #technology .glass.card-animate:last-child {
    margin-bottom: 8px !important;
  }

  #technology {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Contact page mobile improvements */
  .contact-page .layout-content-container {
    padding: 0 !important;
    margin: 0 !important;
  }
  .contact-page .glass {
    padding: 16px !important;
    margin-bottom: 18px !important;
    border-radius: 14px !important;
  }
  .contact-page .text-center.mb-8 {
    margin-bottom: 18px !important;
    padding-top: 8px !important;
  }
  .contact-page .grid-cols-1.md\:grid-cols-2.gap-8 {
    gap: 12px !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .contact-page .glass h2 {
    margin-bottom: 12px !important;
    font-size: 1.3em !important;
  }
  .contact-page .glass .space-y-4 > * {
    margin-bottom: 10px !important;
  }
  .contact-page .glass label {
    margin-bottom: 4px !important;
    font-size: 1em !important;
  }
  .contact-page .glass input,
  .contact-page .glass textarea {
    margin-bottom: 10px !important;
    font-size: 1em !important;
    padding: 10px 12px !important;
  }
  .contact-page .glass button[type="submit"] {
    margin-top: 8px !important;
    padding: 12px 0 !important;
    font-size: 1.1em !important;
  }
}

/* Add hardware acceleration for animations */
@media (prefers-reduced-motion: no-preference) {
  .card-animate,
  .glass,
  .futuristic-btn {
    transform: translateZ(0);
    backface-visibility: hidden;
    perspective: 1000px;
  }
} 