@import url("https://fonts.googleapis.com/css2?family=Playwrite+IT+Moderna:wght@100..400&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900&display=swap");

/* Global Box-Sizing Reset */
html {
  box-sizing: border-box;
  overflow-x: hidden; /* Prevent horizontal scrolling */
}

*, *::before, *::after {
  box-sizing: inherit;
}

/* Ensure custom element tags render as block and take full width */
nav-component,
mobile-menu,
hero-section,
aboutus-section,
tech-stack-section,
contact-section,
footer-component {
  display: block;
  width: 100%;
}

/* Remove any default margin/padding and set background */
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  overflow-x: hidden; /* Ensure no element exceeds viewport width */
  background-color: #1e3653;
  background-image: linear-gradient(315deg, #1e3653 0%, #0c1b2a 74%);
  overscroll-behavior-y: contain;
}

body {
  font-family: "Poppins", sans-serif;
  user-select: none;
}

/* Smooth fade-in animations */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Navbar styles */
.navbar {
  transition: opacity 0.2s ease, background 0.6s ease;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.navbar.scrolled {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(6px);
}

/* Header title font */
.header-title {
  font-family: "Playwrite IT Moderna", sans-serif;
}

/* Hero Section Overlay */
.hero-overlay {
  background: rgba(0, 0, 0, 0.5);
}

/* Video Background */
.video-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.video-container video {
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Fancy Buttons */
.btn-primary {
  display: inline-block;
  background: linear-gradient(to right, #4f46e5, #6366f1);
  color: white;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 600;
  transition: all 0.3s ease-in-out;
  box-shadow: 0px 5px 15px rgba(79,70,229,0.3);
}
.btn-primary:hover {
  background: linear-gradient(to right, #6366f1, #4f46e5);
  transform: translateY(-2px);
  box-shadow: 0px 10px 20px rgba(79,70,229,0.5);
}

/* Feature Card Hover Animation */
.feature-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.feature-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
  filter: brightness(1.1);
}

/* Uniform Feature Images */
.feature-img {
  width: 100%;
  height: 225px;
  object-fit: cover;
  border-radius: 8px;
}

.stack-icon {
  width: 175px;
  height: 175px;
  object-fit: cover;
}

.navbar-invisible {
  visibility: hidden;
}

.footer {
  background-color: rgba(30, 54, 83, 0.95);
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideOut {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-10px);
  }
}

.animate-slideIn {
  animation: slideIn 0.3s forwards;
}

.animate-slideOut {
  animation: slideOut 0.3s forwards;
}

/* MEDIA RULES */
/* (Add any media queries here if needed) */

/* Mobile Styles */
@media (max-width: 768px) {
  
  .feature-img {
    height: 300px;
  }

  .stack-icon {
    width: 125px;
    height: 125px;
  }

  .footer {
    padding: 2rem 0;
  }
}
