/* =========================================
   CSS VARIABLES
   ========================================= */
:root{
  --blue-500:#2b6ff0;
  --blue-600:#1e60e2;
  --blue-50:#eef4ff;
  --ink-900:#0f172a;
  --ink-700:#334155;
  --ink-600:#475569;
  --ink-500:#64748b;
  --ink-300:#cbd5e1;
  --white:#ffffff;
  --card:#ffffff;
  --shadow:0 12px 40px rgba(15,23,42,.08);
  --radius-xl:22px;
  --radius-lg:18px;
  --radius-md:14px;
  --radius-pill:999px;
  --container:1200px;
  --space:clamp(16px,2.2vw,28px);
  --ring:0 0 0 6px rgba(43,111,240,.15);
  --trans:280ms cubic-bezier(.2,.7,.2,1);
}

/* =========================================
   GLOBAL RESET
   ========================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--ink-700);
  background: var(--white);
  line-height:1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.container{ width:min(100% - 2*var(--space), var(--container)); margin-inline:auto; }
/* General section spacing */
.section {
  padding-block: clamp(40px, 6vw, 60px); /* adjusted for uniform spacing */
}

/* Reduce spacing specifically between Hero and Services */
.hero.section {
  padding-bottom: clamp(30px, 4vw, 50px);
}
#services.section {
  padding-top: clamp(30px, 4vw, 50px);
}



h1,h2,h3{ color:var(--ink-900); line-height:1.15; letter-spacing:-0.02em; }
h1{ font-weight:800; font-size:clamp(40px, 6.4vw, 64px); }
h2{ font-weight:800; font-size:clamp(28px, 4.2vw, 40px); }
h3{ font-weight:700; font-size:clamp(18px, 2.2vw, 22px); }
#preloader {
  position: fixed;
  inset: 0;
  background: var(--white);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loader-logo {
  position: relative;
  width: 200px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.logo-text {
  font-weight: 800;
  font-size: 1.5rem;
  color: var(--blue-600);
  position: relative;
  z-index: 2;
}

.loader-fill {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0%;
  height: 6px;
  background: linear-gradient(90deg, var(--blue-500), var(--blue-600));
  border-radius: 3px;
  z-index: 1;
  transition: width 0.05s linear;
}

body.loaded #preloader {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s ease;
}

/* =========================================
   TOPBAR
   ========================================= */
.topbar{
  position:sticky;
  top:0;
  z-index:40;
  backdrop-filter: blur(8px);
  background: color-mix(in oklab, white 86%, transparent);
  border-bottom:1px solid #eef2f7;
}
.topbar__inner{ display:flex; align-items:center; justify-content:space-between; padding-block:12px; gap:10px; font-weight:600; color: var(--ink-900); }
.logo {
  font-weight: 800;
  color: var(--blue-600);
  font-size: clamp(1rem, 3vw, 1.3rem); /* min 1rem, max 1.3rem, scales with viewport */
  display: flex;
  align-items: center;
}
.logo img {
  height: clamp(28px, 4vw, 48px); /* scales with viewport, keeps proportions */
  width: auto;
  border-radius: 50%;
}


.ig{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 16px;
  border:1px solid #e7eef9;
  border-radius: var(--radius-pill);
  background: #fff;
  box-shadow: var(--shadow);
  transition: transform var(--trans), box-shadow var(--trans), border-color var(--trans);
}
.ig:hover{
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--blue-500) 40%, #e7eef9);
  box-shadow:0 16px 44px rgba(43,111,240,.12);
}
.ig__icon{ width:20px; height:20px; flex:0 0 20px; opacity:.9; }

/* =========================================
   HERO
   ========================================= */
.hero{ position:relative; isolation:isolate;
  background:
    radial-gradient(1200px 600px at 80% -20%, color-mix(in srgb, var(--blue-50) 70%, transparent), transparent 60%),
    radial-gradient(900px 500px at 0% 0%, color-mix(in srgb, var(--blue-50) 75%, transparent), transparent 55%),
    var(--white);
}
.hero__inner {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: start;          /* Align to top instead of center */
  min-height: min(88vh, 860px);
  padding-block: clamp(60px, 12vw, 120px); /* adds space from top */
}

@media (max-width: 960px) {
  .hero__inner {
    grid-template-columns: 1fr;
    padding-top: 18px;
  }
}


.hero__title{ 
margin: 0px 0px 14px;
margin-top: 0;
}
.hero__subtitle{ color:var(--ink-600); font-size: clamp(16px,2.2vw,18px); max-width:62ch; }
.cta-row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:48px; padding-inline:22px;
  border-radius: var(--radius-pill);
  font-weight:700; letter-spacing:.2px;
  border:1.5px solid var(--blue-500);
  color: var(--white);
  background: linear-gradient(180deg, var(--blue-500), var(--blue-600));
  box-shadow:0 14px 36px rgba(43,111,240,.24);
  transition: transform var(--trans), box-shadow var(--trans), filter var(--trans);
  will-change: transform;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 18px 44px rgba(43,111,240,.32); filter: saturate(1.03); }
.btn--ghost{ border-color:#e7eef9; background:#fff; color: var(--ink-900); box-shadow: var(--shadow); }
.btn--ghost:hover{ transform:translateY(-3px); box-shadow:0 18px 44px rgba(15,23,42,.14); }


/* =========================================
   SERVICES
   ========================================= */
.services__grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: clamp(16px,2.6vw,28px); }
@media(max-width:1100px){ .services__grid{ grid-template-columns: repeat(2,1fr); } }
@media(max-width:640px){ .services__grid{ grid-template-columns:1fr; } }
.card{ background: var(--card); border-radius: var(--radius-xl); padding:clamp(18px,2.2vw,28px); box-shadow:var(--shadow); border:1px solid #eef2f7; transform:translateZ(0); transition: transform var(--trans), box-shadow var(--trans), border-color var(--trans); position:relative; overflow:clip; }
.card::after{ content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; box-shadow: var(--ring); opacity:0; transition:opacity var(--trans); }
.card:hover{ transform:translateY(-6px); box-shadow:0 22px 60px rgba(15,23,42,.12); border-color:#e5edfb; }
.card:hover::after{ opacity:1; }
.service__icon{ width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background: linear-gradient(180deg,#f2f6ff,#fff); color:var(--blue-600); font-size:24px; box-shadow:inset 0 0 0 1px #e8efff; margin-bottom:14px; }
.service__title{ margin:6px 0 8px; }
.service__text{ color:var(--ink-600); }

/* =========================================
   ABOUT + STATS
   ========================================= */
.about__grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(18px,3vw,34px); align-items:center; }
@media(max-width:960px){ .about__grid{ grid-template-columns:1fr; } }
.about__blurb{ background:#fff; border:1px solid #eef2f7; border-radius: var(--radius-xl); padding:clamp(18px,2.6vw,30px); box-shadow:var(--shadow); color:var(--ink-600); font-size:clamp(15px,2vw,17px); }
.stats{ display:grid; grid-template-columns: repeat(3,1fr); gap:clamp(12px,2vw,18px); }
@media(max-width:600px){ .stats{ grid-template-columns:1fr; } }
.stat{ background:#fff; border:1px solid #eaf0fb; border-radius:var(--radius-lg); padding:clamp(16px,2vw,20px); text-align:center; box-shadow:var(--shadow); transition: transform var(--trans); }
.stat:hover{ transform:translateY(-4px); }
.stat__num{ font-size:clamp(32px,5.4vw,44px); font-weight:800; color:var(--blue-600); letter-spacing:-.01em; }
.stat__label{ color:var(--ink-600); font-weight:600; margin-top:6px; }

/* =========================================
   CONTACT
   ========================================= */
.contact__wrap{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(18px,3vw,34px); align-items:start; }
@media(max-width:960px){ .contact__wrap{ grid-template-columns:1fr; } }
.form{ background:#fff; border:1px solid #eaf0fb; border-radius:var(--radius-xl); padding:clamp(18px,2.6vw,30px); box-shadow:var(--shadow); }
.form__row{ display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.form input,.form textarea{ outline:none; border:1px solid #e1e8f6; border-radius:14px; padding:14px 16px; font:inherit; color:var(--ink-900); background:#fff; transition: border-color var(--trans), box-shadow var(--trans); }
.form textarea{ resize: vertical; min-height:140px; }
.form input:focus,.form textarea:focus{ border-color:var(--blue-500); box-shadow: var(--ring); }
.contact__aside{ background: linear-gradient(180deg,#f9fbff,#fff); border:1px solid #eaf0fb; border-radius: var(--radius-xl); padding:clamp(18px,2.6vw,30px); box-shadow:var(--shadow); }
.contact__list{ list-style:none; display:grid; gap:10px; margin:0 0 12px; }
.contact__link{ display:inline-flex; align-items:center; gap:10px; font-weight:600; color:var(--blue-600); }
.contact__note{ color:var(--ink-600); font-size:14px; margin-top:4px; }

/* =========================================
   FOOTER
   ========================================= */
.footer{ border-top:1px solid #eef2f7; background:#fbfcff; }
.footer__inner{ display:flex; justify-content:center; align-items:center; padding-block:22px; color:var(--ink-600); font-weight:600; }

/* =========================================
   SCROLL-REVEAL
   ========================================= */
[data-animate]{ opacity:0; transform: translateY(16px); transition: opacity 600ms ease, transform 600ms ease; }
[data-animate].is-inview{ opacity:1; transform:none; }
[data-animate="slide-up"]{ transform: translateY(22px); }
[data-animate="fade-in"]{ transform:none; opacity:0; }
[data-animate="pop"]{ transform: scale(.96); }

/* =========================================
   INTERACTION CURSOR
   ========================================= */
.cursor {
  position: fixed;
  left: 0; top: 0;
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 2px solid rgba(0,0,0,.35);
  pointer-events: none;
  z-index: 1000;
  opacity: .9;
  transform: translate(-50%, -50%) scale(1);
  transition:
    width 220ms ease, height 220ms ease,
    border-color 220ms ease, opacity 220ms ease;
  mix-blend-mode: multiply;
  will-change: transform;
  display: block;/* hidden by default */
}
.cursor--visible {
  display: block; /* only shown on non-touch devices */
}
.cursor--hidden{ opacity:0; }
.cursor--scale{ width:86px; height:86px; border-color: rgba(0,0,0,.28); }


.founder__image img {
  width: 100%;
  max-width: 220px;       /* controls size on desktop */
  border-radius: 50%;     /* makes the image circular */
  box-shadow: 0 8px 24px rgba(15,23,42,0.12); /* subtle shadow */
  object-fit: cover;      /* ensures image fills container nicely */
  display: block;
  margin-inline: auto;    /* centers image in its container */
}

/* Mobile responsiveness */
@media (max-width: 960px) {
  .founder__image img {
    max-width: 160px;     /* slightly smaller on mobile */
  }
}
