:root{
  --bg:#0b1533;
  --bg-2:#002362;
  --brand:#09c2ec;
  --brand-dark:#046a88;
  --text:#f7fafc;
  --muted:#c9d2e4;
  --card:#0f1a3d;
  --border:#1b2a57;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --logo-h:88px;
  --marquee-duration:40s;
  --cycle:800px;
}
@media (max-width:700px){ :root{ --logo-h:72px } }

*{box-sizing:border-box}
html,body{
  margin:0;padding:0;color:var(--text);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(60% 60% at 50% 0%, rgba(9,194,236,.12), transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* ---------------- Header ---------------- */
header{
  position:sticky;top:0;z-index:40;
  background:rgba(0,16,50,.6);
  backdrop-filter:saturate(1.1) blur(10px);
  border-bottom:1px solid var(--border)
}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px; position:relative}

/* Brand pill */
.brand-cta{
  display:inline-flex;align-items:center;gap:12px;
  background:var(--brand);
  color:#002b3a !important;
  font-weight:800;
  padding:12px 18px;
  border-radius:14px;
  border:1px solid rgba(9,194,236,.6);
  box-shadow:var(--shadow);
  transition:transform .22s, filter .22s;
  white-space:nowrap;
}
.brand-cta:hover{ transform:translateY(-1px); filter:saturate(1.1); color:#002b3a !important; }
.brand-cta__icon{
  width:40px;height:40px;border-radius:999px;background:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(0,0,0,.18);flex:0 0 40px;overflow:hidden;
}
.brand-cta__icon img{ width:78%;height:78%;object-fit:contain;display:block }

/* Desktop nav layout + spacing */
.nav > nav{
  display:flex;align-items:center;
  gap:32px;                 /* desktop spacing between items */
}
.nav > nav a{
  font-size:.95rem;
  color:var(--muted);
}
.nav > nav a:hover{ color:#fff }

/* Make the header “Start a Project” look like other links,
   even if it still has class="btn" in the HTML */
.nav > nav .btn{
  background:none !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
  color:var(--muted) !important;
  font-weight:600 !important;
  transform:none !important;
  filter:none !important;
}
.nav > nav .btn:hover{ color:#fff !important }

/* ---------------- Buttons (global, used outside header) ---------------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  background:var(--brand);color:#002b3a;
  border:1px solid rgba(9,194,236,.6);
  border-radius:14px;padding:.85rem 1.05rem;font-weight:700;
  box-shadow:var(--shadow);transition:.22s
}
.btn:hover{transform:translateY(-1px);filter:saturate(1.1)}
.btn.outline{background:transparent;color:#fff;border:1px solid var(--border)}

/* Duotone badges */
.badge{--bsize:38px;--isize:22px;display:inline-flex;align-items:center;justify-content:center;width:var(--bsize);height:var(--bsize);border-radius:999px;background:var(--brand);box-shadow:0 6px 16px rgba(9,194,236,.25);flex:0 0 var(--bsize)}
.duo{width:var(--isize);height:var(--isize)}
.duo .a{fill:var(--brand)} .duo .b{fill:var(--brand-dark)}

/* ---------------- Layout ---------------- */
.hero{position:relative;overflow:hidden}
.hero-wrap{display:grid;grid-template-columns:1fr;gap:40px;padding:72px 0}
@media (min-width:900px){.hero-wrap{grid-template-columns:1fr;align-items:center;padding:110px 0}}
h1{font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.05;margin:.4rem 0 1rem;font-weight:800}
h2{font-size:clamp(1.6rem,3.2vw,2.4rem);margin:0 0 .6rem}
p.lead{color:var(--muted);font-size:clamp(1rem,1.2vw,1.12rem)}
.section{padding:72px 0}
.eyebrow{display:flex;align-items:center;gap:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.72rem;margin-bottom:10px}

/* Cards & grids */
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
.card .body{padding:18px}
.card .head{padding:18px 18px 0;font-weight:700;display:flex;align-items:center;gap:.6rem}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}

/* Work */
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.work-thumb{aspect-ratio:16/9;background:#0c1533;border-bottom:1px solid var(--border);overflow:hidden;border-radius:16px}
.work-thumb img{width:100%;height:100%;object-fit:cover}

/* Trust Carousel */
.carousel-wrap{position:relative;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0))}
.carousel-viewport{max-width:1200px;margin:0 auto;padding:0 20px}
.carousel-track{display:flex;gap:48px;will-change:transform;animation:marquee var(--marquee-duration) linear infinite}
.carousel-item{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  padding:10px 16px;border-radius:14px;background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.5);box-shadow:0 6px 14px rgba(0,0,0,.25)
}
.carousel-logo{height:var(--logo-h);width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
@keyframes marquee{from{transform:translateX(0)} to{transform:translateX(calc(-1 * var(--cycle)))}}

.cta{background:linear-gradient(90deg,rgba(9,194,236,.15),transparent,rgba(9,194,236,.15));border:1px solid var(--border);border-radius:24px;padding:28px}

/* ---------------- Footer ---------------- */
footer{border-top:1px solid var(--border);margin-top:60px}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr}}
.socials{display:flex;gap:14px;margin-top:10px}
.socials a{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;padding:0 10px;height:40px;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,.04);color:#fff}
.socials a:hover{background:rgba(9,194,236,.18);border-color:rgba(9,194,236,.5)}

/* ---------------- Reveal animation ---------------- */
[data-reveal]{opacity:0;transform:translateY(18px);transition:transform .6s ease, opacity .6s ease}
[data-reveal].shown{opacity:1;transform:none}

/* decorative border ring fix */
.ring{position:relative}
.ring:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(180deg,rgba(9,194,236,.5),rgba(255,255,255,.06));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude; pointer-events:none}

/* smooth anchor scroll + offset for sticky header */
html{ scroll-behavior:smooth }
#contact{ scroll-margin-top: 90px }

/* ---------------- Mobile Nav (hamburger) ---------------- */
/* Show the hamburger trigger only on mobile */
.menu-toggle{
  display:none;
  font-size:28px; line-height:1;
  background:none;border:none;cursor:pointer;color:var(--brand-dark);
}
@media (max-width: 900px){
  .menu-toggle{ display:block; position:absolute; top:16px; right:16px; z-index:1001; }

  /* Turn the header <nav> into a slide-in panel */
  .nav > nav{
    position:fixed; top:0; right:-100%;
    width:72%; max-width:360px; height:100vh;
    background:#07122e;
    padding:90px 22px 22px;
    box-shadow:-2px 0 16px rgba(0,0,0,.35);
    flex-direction:column;
    gap:18px;                     /* spacing between items in the drawer */
    transition:right .3s ease;
  }
  body.nav-open .nav > nav{ right:0 }

  .nav > nav a{ font-size:1.05rem }
}

/* ---------------- Utility ---------------- */
.hide{ display:none !important }