:root{
  --primary:#0d6efd;
  --primary-2:#00b4d8;
  --bg:#071026;
  --glass: rgba(255,255,255,0.06);
  --muted: rgba(255,255,255,0.75);
  --maxw:1100px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Poppins',sans-serif;
  background:var(--bg);
  color:white;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.55;
}

/* NAV */
.nav {
  position:fixed;left:0;right:0;top:0;
  display:flex;justify-content:space-between;align-items:center;
  background: linear-gradient(90deg, rgba(7,16,38,0.45), rgba(7,16,38,0.25));
  backdrop-filter: blur(8px);
  padding:14px 20px;z-index:999;
  border-bottom:1px solid rgba(255,255,255,0.02);
}

.nav-logo {
  display: flex;
  align-items: center;
  z-index: 1000;
}

.nav-logo img {
  height: 35px;
  width: auto;
  transition: transform 0.3s ease;
}

.nav-logo:hover img {
  transform: scale(1.05);
}

.nav-inner{width:100%;max-width:var(--maxw);display:flex;justify-content:center;gap:20px;margin:0 auto}
.nav a{color:var(--muted);text-decoration:none;font-weight:600;padding:6px 8px;border-radius:6px;transition:color .2s, transform .12s}
.nav a:hover{color:var(--primary);transform:translateY(-2px);}

/* Hamburger Menu */
.hamburger {
  display: none;
  flex-direction: column;
  cursor: pointer;
  padding: 5px;
  z-index: 1000;
}

.hamburger span {
  width: 25px;
  height: 3px;
  background: var(--muted);
  margin: 3px 0;
  transition: 0.3s ease;
  border-radius: 2px;
  transform-origin: center;
}

.hamburger.active span:nth-child(1) {
  transform: rotate(-45deg) translate(-5px, 6px);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: rotate(45deg) translate(-5px, -6px);
}

/* Mobile Navigation */
@media (max-width: 768px) {
  .hamburger {
    display: flex;
    position: relative;
    top: auto;
    right: auto;
    z-index: 1000;
  }
  
  .nav-inner {
    position: fixed;
    top: 0;
    right: -100%;
    width: 280px;
    height: 100vh;
    background: linear-gradient(135deg, rgba(7,16,38,0.95), rgba(7,16,38,0.98));
    backdrop-filter: blur(20px);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;
    gap: 0;
    transition: right 0.3s ease;
    border-left: 1px solid rgba(255,255,255,0.1);
    box-shadow: -10px 0 30px rgba(0,0,0,0.3);
  }
  
  .nav-inner.active {
    right: 0;
  }
  
  .nav-inner a {
    width: 100%;
    text-align: center;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    margin: 0;
    font-size: 1.1rem;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .nav-inner a:hover {
    background: rgba(255,255,255,0.05);
    transform: none;
    color: var(--primary);
  }
  
  .nav-inner a:active {
    background: rgba(255,255,255,0.1);
  }
  
  /* Overlay when menu is open */
  .nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 998;
  }
  
  .nav-overlay.active {
    opacity: 1;
    visibility: visible;
  }
  
  /* Ensure brand logo doesn't interfere */
  .brand-left {
    z-index: 1001;
  }
}

/* HERO */
header.hero{
  min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;
  background: linear-gradient(135deg, #071026 0%, #0a1a3a 50%, #071026 100%);
}

.hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: 
    radial-gradient(circle at 20% 30%, rgba(13, 110, 253, 0.08) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(0, 180, 216, 0.06) 0%, transparent 50%);
  pointer-events: none;
}
.hero-inner{width:100%;max-width:var(--maxw);padding:120px 20px 80px;animation:fadeInUp 1s ease-out}
h1.main{
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height:1.4em;
  letter-spacing:-0.8px;
  margin-bottom:24px;
  font-weight:700;
  background: linear-gradient(135deg, #ffffff 0%, #e3f2fd 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation:fadeInUp 1s ease-out 0.2s both;
}
p.lead{
  font-size:1.25rem;color:var(--muted);max-width:700px;margin:0 auto 40px;line-height:1.6;
  animation:fadeInUp 1s ease-out 0.4s both;
}
.cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:32px;animation:fadeInUp 1s ease-out 0.6s both}
.btn{background:linear-gradient(90deg,var(--primary),var(--primary-2));color:white;padding:16px 32px;border-radius:12px;border:none;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:12px;box-shadow:0 8px 32px rgba(13,110,253,0.2);transition:all 0.3s ease;font-size:1.1rem}
.btn.secondary{background:transparent;border:2px solid rgba(255,255,255,0.1);color:var(--muted);box-shadow:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(13,110,253,0.3)}
.btn.secondary:hover{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.2)}

/* SECTIONS */
section{max-width:var(--maxw);margin:0 auto;padding:80px 20px}
.glass{background:var(--glass);padding:26px;border-radius:14px;border:1px solid rgba(255,255,255,0.04);box-shadow:0 8px 32px rgba(0,0,0,0.5)}
h2{font-size:1.5rem;margin-bottom:12px}
p.small{color:var(--muted);font-size:0.98rem}

/* SERVICES GRID */
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:18px}
.service{padding:18px;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));transition:transform .16s}
.service:hover{transform:translateY(-6px)}
.service .icon{font-size:1.6rem;color:var(--primary);margin-bottom:10px}

/* PORTFOLIO */
.portfolio{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:18px}
.proj{border-radius:10px;overflow:hidden;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));padding:12px;text-align:left;display:flex;flex-direction:column;gap:10px}
.proj img{width:100%;height:160px;object-fit:cover;border-radius:8px}
.proj h4{margin-top:4px;margin-bottom:6px}
.meta{color:var(--muted);font-size:0.92rem}

/* WHY US */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:16px}
.why-card{padding:18px;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01))}
.why-card .num{font-weight:700;color:var(--primary);font-size:1.4rem}

/* CONTACT FORM */
.contact-grid{display:grid;grid-template-columns:1fr 420px;gap:20px;align-items:start}
.contact-form input,.contact-form textarea{width:100%;padding:12px;border-radius:10px;border:none;outline:none;background:rgba(255,255,255,0.03);color:white;margin-bottom:10px;font-size:1rem}
.contact-form button{width:100%;padding:12px;border-radius:10px;border:none;background:linear-gradient(90deg,var(--primary),var(--primary-2));color:white;font-weight:700;cursor:pointer}

/* FOOTER */
footer{padding:28px 20px;text-align:center;color:rgba(255,255,255,0.7);font-size:0.95rem;border-top:1px solid rgba(255,255,255,0.02)}

/* fade-in */
.fade{opacity:0;transform:translateY(28px);transition:all .7s ease}
.fade.show{opacity:1;transform:none}

/* Hero animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* responsive tweaks */
@media (max-width:980px){
  .contact-grid{grid-template-columns:1fr}
  .hero-inner{padding:90px 20px 60px}
}
@media (max-width:768px){
  .hero-inner{padding:80px 20px 50px}
  h1.main{font-size:clamp(2rem, 6vw, 3rem)}
  p.lead{font-size:1.1rem;max-width:100%}
  .cta-row{gap:12px}
  .btn{padding:14px 24px;font-size:1rem}
}
@media (max-width:560px){
  .cta-row{flex-direction:column;gap:10px}
}
@media (max-width: 480px) {
  .nav-inner {
    width: 100%;
    right: -100%;
  }
  
  .hamburger {
    top: 10px;
    right: 15px;
  }
  
  .hamburger span {
    width: 22px;
    height: 2.5px;
  }
  
  .nav-inner a {
    padding: 16px 20px;
    font-size: 1rem;
  }
}

/* Logo area top-left */
.brand-left{
  position: fixed;
  z-index: 1001;
  transition: all 0.3s ease;
  left: 15px;
  top: 15px;
}

.brand-left:hover {
  background: rgba(7, 16, 38, 0.9);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

.brand-left img {
  display: block;
  height: 45px;
  width: auto;
}

@media (max-width: 720px) {
  .brand-left {
    left: 15px;
    top: 15px;
    padding: 6px 10px;
  }
  
  .brand-left img {
    height: 40px;
  }
} 
